-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
[receivercreator] Validate endpoint's configuration before starting receivers #35416
Merged
dmitryax
merged 3 commits into
open-telemetry:main
from
ChrsMark:add_receivercreator_config_validation
Sep 26, 2024
Merged
[receivercreator] Validate endpoint's configuration before starting receivers #35416
dmitryax
merged 3 commits into
open-telemetry:main
from
ChrsMark:add_receivercreator_config_validation
Sep 26, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…eceivers Signed-off-by: ChrsMark <[email protected]>
@dmitryax could you also have a look into this one🙏? |
dmitryax
approved these changes
Sep 26, 2024
jriguera
pushed a commit
to springernature/opentelemetry-collector-contrib
that referenced
this pull request
Oct 4, 2024
…eceivers (open-telemetry#35416) **Description:** The `receivercreator` should validate the runtime configurations before starting a receiver. This PR adds this validation. **Link to tracking Issue:** <Issue number if applicable> Fixes open-telemetry#33145 **Testing:** Using the following helm chart's values: ```yaml mode: daemonset config: extensions: k8s_observer: auth_type: serviceAccount node: ${env:K8S_NODE_NAME} observe_nodes: true exporters: debug: verbosity: basic receivers: receiver_creator/3: watch_observers: [ k8s_observer ] receivers: apache: rule: type == "k8s.node" config: endpoint: "http://localhost:8080/server-status?manual" service: extensions: [health_check, k8s_observer] pipelines: metrics: receivers: [receiver_creator/3] processors: [batch] exporters: [debug] ``` Expect to see an error after the config's validation: ```console 2024-09-25T10:46:56.778Z error [email protected]/observerhandler.go:159 failed to start receiver {"kind": "receiver", "name": "receiver_creator/3", "data_type": "metrics", "receiver": "apache", "error": "invalid runtime receiver config: receivers::apache: query must be 'auto': 'http://localhost:8080/server-status?manual'"} github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator.(*observerHandler).OnAdd github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/observerhandler.go:159 github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer.(*EndpointsWatcher).updateAndNotifyOfEndpoints github.com/open-telemetry/opentelemetry-collector-contrib/extension/[email protected]/endpointswatcher.go:111 ``` This stops the execution of the receiver which would lead to fetch errors (as described in the respective issue open-telemetry#33145): ```console 2024-05-21T09:17:46.749Z error [email protected]/scraper.go:67 failed to fetch Apache Httpd stats {"kind": "receiver", "name": "receiver_creator/3", "data_type": "metrics", "name": "apache//receiver_creator/3{endpoint=\"http://localhost:8080/server-status?manual\"}/k8s_observer/kind-control-plane-b75cdcf9-ee9d-4cb8-aa53-1ceb030d898d", "error": "Get \"http://localhost:8080/server-status?manual\": dial tcp [::1]:8080: connect: connection refused"} github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachereceiver.(*apacheScraper).scrape github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/scraper.go:67 go.opentelemetry.io/collector/receiver/scraperhelper.ScrapeFunc.Scrape go.opentelemetry.io/collector/[email protected]/scraperhelper/scraper.go:20 go.opentelemetry.io/collector/receiver/scraperhelper.(*controller).scrapeMetricsAndReport go.opentelemetry.io/collector/[email protected]/scraperhelper/scrapercontroller.go:194 go.opentelemetry.io/collector/receiver/scraperhelper.(*controller).startScraping.func1 go.opentelemetry.io/collector/[email protected]/scraperhelper/scrapercontroller.go:169 2024-05-21T09:17:46.750Z error scraperhelper/scrapercontroller.go:197 Error scraping metrics {"kind": "receiver", "name": "receiver_creator/3", "data_type": "metrics", "name": "apache//receiver_creator/3{endpoint=\"http://localhost:8080/server-status?manual\"}/k8s_observer/kind-control-plane-b75cdcf9-ee9d-4cb8-aa53-1ceb030d898d", "error": "Get \"http://localhost:8080/server-status?manual\": dial tcp [::1]:8080: connect: connection refused", "scraper": "apache"} ``` **Documentation:** <Describe the documentation added.> Signed-off-by: ChrsMark <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
The
receivercreator
should validate the runtime configurations before starting a receiver. This PR adds this validation.Link to tracking Issue: Fixes #33145
Testing:
Using the following helm chart's values:
Expect to see an error after the config's validation:
This stops the execution of the receiver which would lead to fetch errors (as described in the respective issue #33145):
Documentation: