main: wire node_exporter through reusable config and runtime#3663
Draft
nicolastakashi wants to merge 3 commits into
Draft
main: wire node_exporter through reusable config and runtime#3663nicolastakashi wants to merge 3 commits into
nicolastakashi wants to merge 3 commits into
Conversation
Signed-off-by: Nicolas Takashi <nicolas.tcs@hotmail.com>
Signed-off-by: Nicolas Takashi <nicolas.tcs@hotmail.com>
Signed-off-by: Nicolas Takashi <nicolas.tcs@hotmail.com>
This file contains hidden or 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
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.
Summary
This continues the incremental refactor to make
node_exportereasier to embed outside the standalone binary.The broader goal is to support ongoing work to make Prometheus exporters embeddable inside the Prometheus OpenTelemetry Collector distribution as native receivers, without requiring each exporter to be rewritten as an OpenTelemetry component.
This PR builds on the previous config and runtime foundation PRs by refactoring
node_exporter's main package to consume those reusable APIs instead of constructing everything inline.Specifically, this PR:
config.Configfrom CLI flagscollector.NewRuntime(cfg, logger)from the binary entrypointruntime.Registry()when building the metrics handlerWhy
The goal of this change is to make the binary entrypoint a thinner adapter over reusable exporter APIs.
Before this change,
node_exporter.godirectly handled top-level configuration shaping and collector/registry construction. After this change, the binary is more clearly separated into:This is still not the full embeddability refactor. Collector-specific process-global configuration and runtime state remain follow-up work. The intent of this PR is to move the standalone binary onto the reusable foundation introduced in the earlier PRs.
Stack
This PR is part of a stacked series:
The earlier PRs introduce the reusable config and runtime layers. This PR applies those layers to the existing binary wiring.