Skip to content

Commit 395a179

Browse files
authored
Merge pull request #5960 from parca-dev/otlp1.8
Upgrade otlp to 1.8 and adjust code to spec
2 parents 6b6bcab + 72c2a91 commit 395a179

5 files changed

Lines changed: 96 additions & 122 deletions

File tree

go.mod

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ require (
2323
github.com/google/uuid v1.6.0
2424
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0
2525
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2
26-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1
26+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2
2727
github.com/ianlancetaylor/demangle v0.0.0-20250628045327-2d64ad6b7ec5
2828
github.com/improbable-eng/grpc-web v0.15.0
2929
github.com/klauspost/compress v1.18.0
@@ -50,17 +50,17 @@ require (
5050
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0
5151
go.opentelemetry.io/otel/sdk v1.37.0
5252
go.opentelemetry.io/otel/trace v1.37.0
53-
go.opentelemetry.io/proto/otlp v1.7.1
54-
go.opentelemetry.io/proto/otlp/collector/profiles/v1development v0.0.1
55-
go.opentelemetry.io/proto/otlp/profiles/v1development v0.0.1
53+
go.opentelemetry.io/proto/otlp v1.8.0
54+
go.opentelemetry.io/proto/otlp/collector/profiles/v1development v0.1.0
55+
go.opentelemetry.io/proto/otlp/profiles/v1development v0.1.0
5656
go.uber.org/atomic v1.11.0
5757
go.uber.org/automaxprocs v1.6.0
5858
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
5959
golang.org/x/net v0.43.0
6060
golang.org/x/oauth2 v0.30.0
6161
golang.org/x/sync v0.16.0
6262
google.golang.org/api v0.248.0
63-
google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c
63+
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5
6464
google.golang.org/grpc v1.75.0
6565
google.golang.org/protobuf v1.36.8
6666
gopkg.in/dnaeon/go-vcr.v3 v3.2.2
@@ -251,7 +251,7 @@ require (
251251
golang.org/x/tools v0.36.0 // indirect
252252
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
253253
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
254-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c // indirect
254+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect
255255
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
256256
gopkg.in/inf.v0 v0.9.1 // indirect
257257
gopkg.in/ini.v1 v1.67.0 // indirect

go.sum

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -449,8 +449,8 @@ github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 h1:sGm2vDRFUrQJO/Veii4h4z
449449
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2/go.mod h1:wd1YpapPLivG6nQgbf7ZkG1hhSOXDhhn4MLTknx2aAc=
450450
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
451451
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
452-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 h1:X5VWvz21y3gzm9Nw/kaUeku/1+uBhcekkmy4IkffJww=
453-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1/go.mod h1:Zanoh4+gvIgluNqcfMVTJueD4wSS5hT7zTt4Mrutd90=
452+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU=
453+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs=
454454
github.com/hamba/avro/v2 v2.29.0 h1:fkqoWEPxfygZxrkktgSHEpd0j/P7RKTBTDbcEeMdVEY=
455455
github.com/hamba/avro/v2 v2.29.0/go.mod h1:Pk3T+x74uJoJOFmHrdJ8PRdgSEL/kEKteJ31NytCKxI=
456456
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
@@ -936,12 +936,12 @@ go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFh
936936
go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
937937
go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
938938
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
939-
go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4=
940-
go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE=
941-
go.opentelemetry.io/proto/otlp/collector/profiles/v1development v0.0.1 h1:fx/W8DTESvlkLLozHPDTA8k/8+F0WB7z1pmw7dfT6Z4=
942-
go.opentelemetry.io/proto/otlp/collector/profiles/v1development v0.0.1/go.mod h1:iDeBqwBn31jzFTGdBN/M7e9lHfg3xgaSXJ8RH5tfFfk=
943-
go.opentelemetry.io/proto/otlp/profiles/v1development v0.0.1 h1:s47h9Vl67PNihnb3cWTR2+M29T6OT4QwHcwg7DclJM4=
944-
go.opentelemetry.io/proto/otlp/profiles/v1development v0.0.1/go.mod h1:/wV1Wyg3wdh0FngILo+M7A948iLfldMCMOEqXyVWsr4=
939+
go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
940+
go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0=
941+
go.opentelemetry.io/proto/otlp/collector/profiles/v1development v0.1.0 h1:oHR8pwK4RbMMTIyu/mp+1ZaolOXMTN1/t9oGvLpd74A=
942+
go.opentelemetry.io/proto/otlp/collector/profiles/v1development v0.1.0/go.mod h1:1UkO7x4pJaCJvncsIuEIVOTtlqIoYJ//bYHdyUpqmRs=
943+
go.opentelemetry.io/proto/otlp/profiles/v1development v0.1.0 h1:2SRSI1tq9ShNZDTDdawabG2rvibKNZukZbgptYPDYY4=
944+
go.opentelemetry.io/proto/otlp/profiles/v1development v0.1.0/go.mod h1:wCIS2dJxwlpeaYQtCyibP1/S5i6/Z06yZIFX5jnUjG8=
945945
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
946946
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
947947
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
@@ -1134,10 +1134,10 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY
11341134
google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
11351135
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4=
11361136
google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s=
1137-
google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c h1:AtEkQdl5b6zsybXcbz00j1LwNodDuH6hVifIaNqk7NQ=
1138-
google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c/go.mod h1:ea2MjsO70ssTfCjiwHgI0ZFqcw45Ksuk2ckf9G468GA=
1139-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c h1:qXWI/sQtv5UKboZ/zUk7h+mrf/lXORyI+n9DKDAusdg=
1140-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo=
1137+
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 h1:BIRfGDEjiHRrk0QKZe3Xv2ieMhtgRGeLcZQ0mIVn4EY=
1138+
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5/go.mod h1:j3QtIyytwqGr1JUDtYXwtMXWPKsEa5LtzIFN1Wn5WvE=
1139+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE=
1140+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc=
11411141
google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
11421142
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
11431143
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=

pkg/normalizer/normalizer.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,22 +93,22 @@ func MetaFromPprof(p *pprofpb.Profile, name string, sampleIndex int) profile.Met
9393
}
9494
}
9595

96-
func MetaFromOtelProfile(stringTable []string, p *pprofextended.Profile, name string, sampleIndex int, duration int64) profile.Meta {
96+
func MetaFromOtelProfile(stringTable []string, p *pprofextended.Profile, name string, duration uint64) profile.Meta {
9797
periodType := profile.ValueType{}
9898
if p.PeriodType != nil {
9999
periodType = profile.ValueType{Type: stringTable[p.PeriodType.TypeStrindex], Unit: stringTable[p.PeriodType.UnitStrindex]}
100100
}
101101

102102
sampleType := profile.ValueType{}
103103
if p.SampleType != nil {
104-
sampleType = profile.ValueType{Type: stringTable[p.SampleType[sampleIndex].TypeStrindex], Unit: stringTable[p.SampleType[sampleIndex].UnitStrindex]}
104+
sampleType = profile.ValueType{Type: stringTable[p.SampleType.TypeStrindex], Unit: stringTable[p.SampleType.UnitStrindex]}
105105
}
106106

107107
return profile.Meta{
108108
Name: name,
109-
Timestamp: p.TimeNanos / time.Millisecond.Nanoseconds(),
110-
TimeNanos: p.TimeNanos,
111-
Duration: duration,
109+
Timestamp: int64(p.TimeUnixNano / uint64(time.Millisecond.Nanoseconds())),
110+
TimeNanos: int64(p.TimeUnixNano),
111+
Duration: int64(duration),
112112
Period: p.Period,
113113
PeriodType: periodType,
114114
SampleType: sampleType,

0 commit comments

Comments
 (0)