Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[connectors/spanmetrics] Drop Prometheus-specific metrics labels sanitization. #18757

Merged

Conversation

kovrus
Copy link
Member

@kovrus kovrus commented Feb 17, 2023

Description:

Remove Prometheus-specific labels sanitization.

The spanmeterics connector is the OTel component, therefore, we would like to strip Prometheus-specific parts from it. The label conversion to Prometheus conventions should happen in the Prometheus component, e.g. Prometheus remote write exporter (which is implemented already).

Resolves #18678

Link to tracking Issue:
#18678

Testing:
Existing unit tests.

Documentation:
I've temporarily dropped some parts of README showing some examples of the generated metrics because they are given in prom exposition format which is irrelevant to this component. I'll update the readme later with an example of how to use this component with Prometheus exporters.

@runforesight
Copy link

runforesight bot commented Feb 17, 2023

Foresight Summary

    
Major Impacts

build-and-test-windows duration(6 seconds) has decreased 42 minutes 54 seconds compared to main branch avg(43 minutes).
View More Details

⭕  build-and-test-windows workflow has finished in 6 seconds (42 minutes 32 seconds less than main branch avg.) and finished at 27th Feb, 2023.


Job Failed Steps Tests
windows-unittest-matrix -     🔗  N/A See Details
windows-unittest -     🔗  N/A See Details

✅  telemetrygen workflow has finished in 2 minutes 43 seconds and finished at 27th Feb, 2023.


Job Failed Steps Tests
build-dev -     🔗  N/A See Details
publish-latest -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details

✅  changelog workflow has finished in 3 minutes 52 seconds (⚠️ 1 minute 5 seconds more than main branch avg.) and finished at 27th Feb, 2023.


Job Failed Steps Tests
changelog -     🔗  N/A See Details

✅  prometheus-compliance-tests workflow has finished in 4 minutes 20 seconds (5 minutes 7 seconds less than main branch avg.) and finished at 27th Feb, 2023.


Job Failed Steps Tests
prometheus-compliance-tests -     🔗  ✅ 21  ❌ 0  ⏭ 0    🔗 See Details

✅  load-tests workflow has finished in 12 minutes 43 seconds (5 minutes 30 seconds less than main branch avg.) and finished at 27th Feb, 2023.


Job Failed Steps Tests
loadtest (TestMetric10kDPS|TestMetricsFromFile) -     🔗  ✅ 6  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestIdleMode) -     🔗  ✅ 1  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestBallastMemory|TestLog10kDPS) -     🔗  ✅ 18  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceAttributesProcessor) -     🔗  ✅ 3  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceBallast1kSPSWithAttrs|TestTraceBallast1kSPSAddAttrs) -     🔗  ✅ 10  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceNoBackend10kSPS|TestTrace1kSPSWithAttrs) -     🔗  ✅ 8  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetricResourceProcessor|TestTrace10kSPS) -     🔗  ✅ 12  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details

✅  check-links workflow has finished in 9 minutes 18 seconds (⚠️ 6 minutes 45 seconds more than main branch avg.) and finished at 27th Feb, 2023.


Job Failed Steps Tests
changed files -     🔗  N/A See Details
check-links -     🔗  N/A See Details

✅  e2e-tests workflow has finished in 22 minutes 7 seconds (⚠️ 6 minutes 20 seconds more than main branch avg.) and finished at 27th Feb, 2023.


Job Failed Steps Tests
kubernetes-test (v1.26.0) -     🔗  N/A See Details
kubernetes-test (v1.25.3) -     🔗  N/A See Details
kubernetes-test (v1.24.7) -     🔗  N/A See Details
kubernetes-test (v1.23.13) -     🔗  N/A See Details

✅  build-and-test workflow has finished in 2 hours 12 minutes 33 seconds (⚠️ 1 hour 1 minute 30 seconds more than main branch avg.) and finished at 27th Feb, 2023.


Job Failed Steps Tests
correctness-traces -     🔗  ✅ 17  ❌ 0  ⏭ 0    🔗 See Details
correctness-metrics -     🔗  ✅ 2  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, internal) -     🔗  ✅ 561  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, extension) -     🔗  ✅ 537  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, processor) -     🔗  ✅ 1518  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, internal) -     🔗  ✅ 561  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-0) -     🔗  ✅ 2577  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, extension) -     🔗  ✅ 537  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, processor) -     🔗  ✅ 1518  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, receiver-0) -     🔗  ✅ 2577  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, exporter) -     🔗  ✅ 2456  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, other) -     🔗  ✅ 4771  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-1) -     🔗  ✅ 1937  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, exporter) -     🔗  ✅ 2456  ❌ 0  ⏭ 0    🔗 See Details
integration-tests -     🔗  ✅ 55  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, other) -     🔗  ✅ 4771  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.20, receiver-1) -     🔗  ✅ 1937  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details
check-codeowners -     🔗  N/A See Details
lint-matrix (receiver-0) -     🔗  N/A See Details
lint-matrix (receiver-1) -     🔗  N/A See Details
lint-matrix (processor) -     🔗  N/A See Details
lint-matrix (exporter) -     🔗  N/A See Details
lint-matrix (extension) -     🔗  N/A See Details
lint-matrix (internal) -     🔗  N/A See Details
lint-matrix (other) -     🔗  N/A See Details
build-examples -     🔗  N/A See Details
check-collector-module-version -     🔗  N/A See Details
checks -     🔗  N/A See Details
lint -     🔗  N/A See Details
unittest (1.20) -     🔗  N/A See Details
unittest (1.19) -     🔗  N/A See Details
cross-compile (darwin, arm64) -     🔗  N/A See Details
cross-compile (darwin, amd64) -     🔗  N/A See Details
cross-compile (linux, 386) -     🔗  N/A See Details
cross-compile (linux, amd64) -     🔗  N/A See Details
cross-compile (linux, arm) -     🔗  N/A See Details
cross-compile (linux, arm64) -     🔗  N/A See Details
cross-compile (linux, ppc64le) -     🔗  N/A See Details
cross-compile (windows, 386) -     🔗  N/A See Details
cross-compile (windows, amd64) -     🔗  N/A See Details
build-package (deb) -     🔗  N/A See Details
build-package (rpm) -     🔗  N/A See Details
windows-msi -     🔗  N/A See Details
publish-check -     🔗  N/A See Details
publish-dev -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details

🔎 See details on Foresight

*You can configure Foresight comments in your organization settings page.


**Duration** is computed from the difference between the span start and end times and inserted into the
relevant latency histogram time bucket for each unique set dimensions.
For example, the following latency buckets indicate the vast majority of spans (9K) have a 100ms latency:
```
latency_bucket{http_method="GET",http_status_code="200",label1="value1",operation="/Address",service_name="shippingservice",span_kind="SPAN_KIND_SERVER",status_code="STATUS_CODE_UNSET",le="2"} 327
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These examples are written in Prometheus exposition format while the component generates OTel metrics.

I'll provide a new section on how to use spanmetrics with Prometheus exporters later.

@kovrus kovrus added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Feb 17, 2023
@kovrus
Copy link
Member Author

kovrus commented Feb 17, 2023

cc: @Cluas @albertteoh

@kovrus kovrus marked this pull request as ready for review February 17, 2023 14:48
@kovrus kovrus requested a review from a team as a code owner February 17, 2023 14:48
@kovrus kovrus force-pushed the issue-18678-drop-sanitization branch from 0a8ceb3 to 78fce61 Compare February 17, 2023 15:02
@Cluas
Copy link
Contributor

Cluas commented Feb 17, 2023

Maybe we should wait for that PR to finish, otherwise there will be several conflicts. #18746

Copy link
Contributor

@albertteoh albertteoh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good so far!

connector/spanmetricsconnector/README.md Outdated Show resolved Hide resolved
@Aneurysm9 Aneurysm9 removed the Skip Changelog PRs that do not require a CHANGELOG.md entry label Feb 17, 2023
@Aneurysm9
Copy link
Member

This is a significant-enough change that it should have a changelog entry.

@kovrus
Copy link
Member Author

kovrus commented Feb 18, 2023

This is a significant-enough change that it should have a changelog entry.

The component cannot be even used yet, so I am not sure about adding changelog entries, I proposed the following, see #18760

@kovrus kovrus force-pushed the issue-18678-drop-sanitization branch from c161d30 to a893cc2 Compare February 18, 2023 00:12
@Aneurysm9
Copy link
Member

The processor can be used and this gate may be used today. I'm not 100% up-to-speed on the conversion from the processor to the connector, but if this can impact people who are using the processor today when they convert or have it converted underneath them then it needs a changelog entry.

@kovrus
Copy link
Member Author

kovrus commented Feb 18, 2023

This is the change to spanmetrics connector only, the processor is not impacted. We will keep both components for a while to give users time to migrate from processor to connector once the former is actually available for use in the collector. Changelog entries and migration instructions will be added once we are ready to add the component to the collector, see #18760. I think adding changelog entries now for the component that cannot even be used (not a part of the dist) can be misleading.

@kovrus kovrus force-pushed the issue-18678-drop-sanitization branch from a893cc2 to af9c017 Compare February 20, 2023 14:26
@kovrus kovrus force-pushed the issue-18678-drop-sanitization branch from af9c017 to ee6cd98 Compare February 23, 2023 09:04
@kovrus kovrus added the ready to merge Code review completed; ready to merge by maintainers label Feb 23, 2023
Copy link
Contributor

@codeboten codeboten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please rebase

@kovrus kovrus force-pushed the issue-18678-drop-sanitization branch from ee6cd98 to c998537 Compare February 24, 2023 20:44
@kovrus
Copy link
Member Author

kovrus commented Feb 24, 2023

Please rebase

rebased

@kovrus kovrus force-pushed the issue-18678-drop-sanitization branch from 3ebb832 to 51bbf57 Compare February 27, 2023 13:50
@jpkrohling jpkrohling merged commit ca0d35c into open-telemetry:main Feb 27, 2023
@kovrus kovrus deleted the issue-18678-drop-sanitization branch February 27, 2023 16:06
newly12 pushed a commit to newly12/opentelemetry-collector-contrib that referenced this pull request Feb 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
connector/spanmetrics ready to merge Code review completed; ready to merge by maintainers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[connectors/spanmetrics] Drop Prometheus-specific metrics labels sanitization.
7 participants