Skip to content

Commit 67c0b72

Browse files
authored
v1.0.0
Add processors for SPM and connectors support
2 parents a7838a4 + d1c0f0a commit 67c0b72

File tree

7 files changed

+150
-1
lines changed

7 files changed

+150
-1
lines changed

.github/workflows/check-links.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- name: Get changed files
2323
id: changes
2424
run: |
25-
echo "md=$(git diff --name-only --diff-filter=ACMRTUXB $(git merge-base origin/main $PR_HEAD) $PR_HEAD | grep .md$ | xargs)" >> $GITHUB_OUTPUT
25+
echo "md=$(git diff --name-only --diff-filter=ACMRTUXB $(git merge-base origin/main $PR_HEAD) $PR_HEAD | grep .md$ | grep -v README.md | xargs)" >> $GITHUB_OUTPUT
2626
2727
check-links:
2828
runs-on: ubuntu-latest

README.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,3 +129,116 @@ Here is a list of community roles with current and previous members:
129129
- [Anthony Mirabella](https://github.com/Aneurysm9)
130130

131131
Learn more about roles in the [community repository](https://github.com/open-telemetry/community/blob/main/community-membership.md).
132+
133+
# Configuration Example
134+
135+
Replace `<<LOGZIO_TRACING_SHIPPING_TOKEN>>`, `<<LOGZIO_SPM_SHIPPING_TOKEN>>`, `<<LOGZIO_ACCOUNT_REGION_CODE>>`, and `<<LOGZIO_LISTENER_HOST>>` with your Logz.io account's information.
136+
137+
```yaml
138+
receivers:
139+
otlp:
140+
protocols:
141+
grpc:
142+
endpoint: "0.0.0.0:4317"
143+
http:
144+
endpoint: "0.0.0.0:4318"
145+
146+
connectors:
147+
spanmetrics:
148+
aggregation_temporality: AGGREGATION_TEMPORALITY_CUMULATIVE
149+
dimensions:
150+
- name: rpc.grpc.status_code
151+
- name: http.method
152+
- name: http.status_code
153+
- name: cloud.provider
154+
- name: cloud.region
155+
- name: db.system
156+
- name: messaging.system
157+
- default: DEV
158+
name: env_id
159+
dimensions_cache_size: 100000
160+
histogram:
161+
explicit:
162+
buckets:
163+
- 2ms
164+
- 8ms
165+
- 50ms
166+
- 100ms
167+
- 200ms
168+
- 500ms
169+
- 1s
170+
- 5s
171+
- 10s
172+
metrics_expiration: 5m
173+
resource_metrics_key_attributes:
174+
- service.name
175+
- telemetry.sdk.language
176+
- telemetry.sdk.name
177+
178+
exporters:
179+
logzio/traces:
180+
account_token: <<LOGZIO_TRACING_SHIPPING_TOKEN>>
181+
region: <<LOGZIO_ACCOUNT_REGION_CODE>>
182+
prometheusremotewrite/spm:
183+
endpoint: https://<<LOGZIO_LISTENER_HOST>>:8053
184+
add_metric_suffixes: false
185+
headers:
186+
Authorization: Bearer <<LOGZIO_SPM_SHIPPING_TOKEN>>
187+
188+
processors:
189+
batch:
190+
tail_sampling:
191+
policies:
192+
- name: policy-errors
193+
type: status_code
194+
status_code: {status_codes: [ERROR]}
195+
- name: policy-slow
196+
type: latency
197+
latency: {threshold_ms: 1000}
198+
- name: policy-random-ok
199+
type: probabilistic
200+
probabilistic: {sampling_percentage: 10}
201+
metricstransform/metrics-rename:
202+
transforms:
203+
- include: ^duration(.*)$$
204+
action: update
205+
match_type: regexp
206+
new_name: latency.$${1}
207+
- action: update
208+
include: calls
209+
new_name: calls_total
210+
metricstransform/labels-rename:
211+
transforms:
212+
- action: update
213+
include: ^latency
214+
match_type: regexp
215+
operations:
216+
- action: update_label
217+
label: span.name
218+
new_label: operation
219+
- action: update
220+
include: ^calls
221+
match_type: regexp
222+
operations:
223+
- action: update_label
224+
label: span.name
225+
new_label: operation
226+
227+
service:
228+
pipelines:
229+
traces:
230+
receivers: [otlp]
231+
processors: [tail_sampling, batch]
232+
exporters: [logzio/traces]
233+
traces/spm:
234+
receivers: [otlp]
235+
processors: [batch]
236+
exporters: [spanmetrics]
237+
metrics/spanmetrics:
238+
receivers: [spanmetrics]
239+
processors: [metricstransform/metrics-rename, metricstransform/labels-rename, batch]
240+
exporters: [prometheusremotewrite/spm]
241+
telemetry:
242+
logs:
243+
level: "info"
244+
```

collector/go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,11 @@ require (
126126
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.113.0 // indirect
127127
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0 // indirect
128128
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 // indirect
129+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.113.0 // indirect
129130
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 // indirect
130131
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 // indirect
131132
github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.113.0 // indirect
133+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 // indirect
132134
github.com/open-telemetry/opentelemetry-lambda/collector/processor/coldstartprocessor v0.98.0 // indirect
133135
github.com/open-telemetry/opentelemetry-lambda/collector/processor/decoupleprocessor v0.0.0-00010101000000-000000000000 // indirect
134136
github.com/open-telemetry/opentelemetry-lambda/collector/receiver/telemetryapireceiver v0.98.0 // indirect

collector/go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113
196196
github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0/go.mod h1:sYIh0S63ztcL2q9gEKhvviDQ5caH1sFE1oeFRDQOQ6A=
197197
github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0 h1:V9CRl77lPG2xFPpnRf1QLiePo7FZngt+vw6M2KLdRMU=
198198
github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0/go.mod h1:zL+Msnlb1TEObHQ2RNnPKbVr3GhSdyI2ZqGtiSxg2/E=
199+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0 h1:5YU2trp7n56EyDS9dEyY1UxyaW6wxB4KiyKoyjDYooo=
200+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0/go.mod h1:EBtBK1lE/HMUz51cafBLlJAXZ/2ZDRCV4C+rT04fMYM=
199201
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0 h1:e2WOkaj5AWPaKTU4l+GEXGrEUbrAhQPQ7zLUdnXLGX8=
200202
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0/go.mod h1:x+DR/o7xddbdhpQP2QKBJkPUdrj2tl/uR1OJ/sqlrWc=
201203
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.113.0 h1:GERkhEtH3Uk8CMBzFoBmMD7fBfcrtIM9hopbQqzdvNs=
@@ -216,12 +218,16 @@ github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributespr
216218
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0/go.mod h1:U0wBuG6Jz+DBzcPNCmRVZaZTXqaKC+RYo4eJiSKJwwk=
217219
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 h1:+eYxV9vp6u8fKM+9acEJYGUa3SD1vJF776c/haougNQ=
218220
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0/go.mod h1:xSVeb2A5wmIuJ9Vak9UwPCP/yN1SDd+pBKfYHROW6YE=
221+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.113.0 h1:MN9P2YH7SUTLxQqGEmLsTKJ77qCSXBxHFE3seJxjH14=
222+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.113.0/go.mod h1:2WUdA+8uuoNLofhsNDHLyejeVpVzAvyHMVw3jWpvOGE=
219223
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM=
220224
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E=
221225
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 h1:Syf4U5GrSl2fOGXBAChHrdSvMRBhi7BFiDwKbFkNo/8=
222226
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0/go.mod h1:Q9shex5tQOoK4FeVx0NvYkwu18hCPFlRnwqqQzLfbpo=
223227
github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.113.0 h1:fvasZ3NNW+O5pVnDTF4+WuscMLQQRbUROhK7McVjRD8=
224228
github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.113.0/go.mod h1:AESjWVG6+DrQKX1xFnChVKlNiSHi8gwX4k7kAQJfnSo=
229+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 h1:vgYhhliqQ6WUy5b1BE0ILJQKTweaLDPI5l/bUIunqLo=
230+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0/go.mod h1:UG/8zqyqbdN0HHkiWC7GZW4wFL4GIyRtsshc1RY8bGo=
225231
github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ=
226232
github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
227233
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=

collector/lambdacomponents/default.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,26 @@
1717
package lambdacomponents
1818

1919
import (
20+
"github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector"
2021
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter"
2122
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter"
2223
"github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension"
2324
"github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension"
2425
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor"
2526
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor"
27+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor"
2628
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor"
2729
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor"
2830
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor"
31+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor"
2932
"github.com/open-telemetry/opentelemetry-lambda/collector/processor/decoupleprocessor"
33+
"go.opentelemetry.io/collector/connector"
3034
"go.opentelemetry.io/collector/exporter"
3135
"go.opentelemetry.io/collector/exporter/debugexporter"
3236
"go.opentelemetry.io/collector/exporter/otlpexporter"
3337
"go.opentelemetry.io/collector/exporter/otlphttpexporter"
3438
"go.opentelemetry.io/collector/extension"
39+
"go.opentelemetry.io/collector/featuregate"
3540
"go.opentelemetry.io/collector/otelcol"
3641
"go.opentelemetry.io/collector/processor"
3742
"go.opentelemetry.io/collector/processor/batchprocessor"
@@ -76,6 +81,8 @@ func Components(extensionID string) (otelcol.Factories, error) {
7681
coldstartprocessor.NewFactory(),
7782
decoupleprocessor.NewFactory(),
7883
batchprocessor.NewFactory(),
84+
tailsamplingprocessor.NewFactory(),
85+
metricstransformprocessor.NewFactory(),
7986
)
8087
if err != nil {
8188
errs = append(errs, err)
@@ -89,11 +96,24 @@ func Components(extensionID string) (otelcol.Factories, error) {
8996
errs = append(errs, err)
9097
}
9198

99+
connectors, err := connector.MakeFactoryMap(
100+
spanmetricsconnector.NewFactory(),
101+
)
102+
if err != nil {
103+
errs = append(errs, err)
104+
}
105+
106+
err = featuregate.GlobalRegistry().Set("connector.spanmetrics.legacyMetricNames", true)
107+
if err != nil {
108+
errs = append(errs, err)
109+
}
110+
92111
factories := otelcol.Factories{
93112
Receivers: receivers,
94113
Exporters: exporters,
95114
Processors: processors,
96115
Extensions: extensions,
116+
Connectors: connectors,
97117
}
98118

99119
return factories, multierr.Combine(errs...)

collector/lambdacomponents/go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ require (
1010
github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.113.0
1111
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0
1212
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0
13+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.113.0
1314
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0
1415
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0
1516
github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.113.0
17+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0
1618
github.com/open-telemetry/opentelemetry-lambda/collector/processor/coldstartprocessor v0.98.0
1719
github.com/open-telemetry/opentelemetry-lambda/collector/processor/decoupleprocessor v0.0.0-00010101000000-000000000000
1820
github.com/open-telemetry/opentelemetry-lambda/collector/receiver/telemetryapireceiver v0.98.0

collector/lambdacomponents/go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,8 @@ github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113
180180
github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0/go.mod h1:sYIh0S63ztcL2q9gEKhvviDQ5caH1sFE1oeFRDQOQ6A=
181181
github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0 h1:V9CRl77lPG2xFPpnRf1QLiePo7FZngt+vw6M2KLdRMU=
182182
github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0/go.mod h1:zL+Msnlb1TEObHQ2RNnPKbVr3GhSdyI2ZqGtiSxg2/E=
183+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0 h1:5YU2trp7n56EyDS9dEyY1UxyaW6wxB4KiyKoyjDYooo=
184+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0/go.mod h1:EBtBK1lE/HMUz51cafBLlJAXZ/2ZDRCV4C+rT04fMYM=
183185
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0 h1:e2WOkaj5AWPaKTU4l+GEXGrEUbrAhQPQ7zLUdnXLGX8=
184186
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0/go.mod h1:x+DR/o7xddbdhpQP2QKBJkPUdrj2tl/uR1OJ/sqlrWc=
185187
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.113.0 h1:GERkhEtH3Uk8CMBzFoBmMD7fBfcrtIM9hopbQqzdvNs=
@@ -200,12 +202,16 @@ github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributespr
200202
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0/go.mod h1:U0wBuG6Jz+DBzcPNCmRVZaZTXqaKC+RYo4eJiSKJwwk=
201203
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 h1:+eYxV9vp6u8fKM+9acEJYGUa3SD1vJF776c/haougNQ=
202204
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0/go.mod h1:xSVeb2A5wmIuJ9Vak9UwPCP/yN1SDd+pBKfYHROW6YE=
205+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.113.0 h1:MN9P2YH7SUTLxQqGEmLsTKJ77qCSXBxHFE3seJxjH14=
206+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.113.0/go.mod h1:2WUdA+8uuoNLofhsNDHLyejeVpVzAvyHMVw3jWpvOGE=
203207
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM=
204208
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E=
205209
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 h1:Syf4U5GrSl2fOGXBAChHrdSvMRBhi7BFiDwKbFkNo/8=
206210
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0/go.mod h1:Q9shex5tQOoK4FeVx0NvYkwu18hCPFlRnwqqQzLfbpo=
207211
github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.113.0 h1:fvasZ3NNW+O5pVnDTF4+WuscMLQQRbUROhK7McVjRD8=
208212
github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.113.0/go.mod h1:AESjWVG6+DrQKX1xFnChVKlNiSHi8gwX4k7kAQJfnSo=
213+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 h1:vgYhhliqQ6WUy5b1BE0ILJQKTweaLDPI5l/bUIunqLo=
214+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0/go.mod h1:UG/8zqyqbdN0HHkiWC7GZW4wFL4GIyRtsshc1RY8bGo=
209215
github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ=
210216
github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
211217
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=

0 commit comments

Comments
 (0)