From 3744b55dfd342e7b7c54676148334822e0caf3a0 Mon Sep 17 00:00:00 2001 From: Alex Boten Date: Thu, 25 May 2023 12:54:22 -0700 Subject: [PATCH] [receiver/expvar] use generated status header (#22765) This PR updates the component to generate the status table using mdatagen. Linked issue: #21213 Signed-off-by: Alex Boten --- receiver/expvarreceiver/README.md | 19 ++++++++++--------- receiver/expvarreceiver/config_test.go | 10 +++++----- receiver/expvarreceiver/doc.go | 4 ++-- receiver/expvarreceiver/documentation.md | 2 +- receiver/expvarreceiver/factory.go | 10 ++++------ .../internal/metadata/generated_config.go | 4 ++-- .../internal/metadata/generated_status.go | 12 ++++++++++++ receiver/expvarreceiver/metadata.yaml | 8 +++++++- 8 files changed, 43 insertions(+), 26 deletions(-) create mode 100644 receiver/expvarreceiver/internal/metadata/generated_status.go diff --git a/receiver/expvarreceiver/README.md b/receiver/expvarreceiver/README.md index 75c0067faf9a..b8bcbc1c6334 100644 --- a/receiver/expvarreceiver/README.md +++ b/receiver/expvarreceiver/README.md @@ -1,10 +1,15 @@ # Expvar Receiver -| Status | | -| ------------------------ |-------------------| -| Stability | [alpha] | -| Supported pipeline types | metrics | -| Distributions | [contrib], [sumo] | + +| Status | | +| ------------- |-----------| +| Stability | [alpha]: metrics | +| Distributions | [contrib], [sumo] | + +[alpha]: https://github.com/open-telemetry/opentelemetry-collector#alpha +[contrib]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib +[sumo]: https://github.com/SumoLogic/sumologic-otel-collector + An Expvar Receiver scrapes metrics from [expvar](https://pkg.go.dev/expvar), which exposes data in JSON format from an HTTP endpoint. The metrics are @@ -50,7 +55,3 @@ receivers: process.runtime.memstats.mallocs: enabled: false ``` - -[alpha]:https://github.com/open-telemetry/opentelemetry-collector#alpha -[contrib]:https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib -[sumo]: https://github.com/SumoLogic/sumologic-otel-collector diff --git a/receiver/expvarreceiver/config_test.go b/receiver/expvarreceiver/config_test.go index a82650e8663a..8467827de570 100644 --- a/receiver/expvarreceiver/config_test.go +++ b/receiver/expvarreceiver/config_test.go @@ -34,11 +34,11 @@ func TestLoadConfig(t *testing.T) { errorMessage string }{ { - id: component.NewIDWithName(typeStr, "default"), + id: component.NewIDWithName(metadata.Type, "default"), expected: factory.CreateDefaultConfig(), }, { - id: component.NewIDWithName(typeStr, "custom"), + id: component.NewIDWithName(metadata.Type, "custom"), expected: &Config{ ScraperControllerSettings: scraperhelper.ScraperControllerSettings{ CollectionInterval: 30 * time.Second, @@ -51,15 +51,15 @@ func TestLoadConfig(t *testing.T) { }, }, { - id: component.NewIDWithName(typeStr, "bad_schemeless_endpoint"), + id: component.NewIDWithName(metadata.Type, "bad_schemeless_endpoint"), errorMessage: "scheme must be 'http' or 'https', but was 'localhost'", }, { - id: component.NewIDWithName(typeStr, "bad_hostless_endpoint"), + id: component.NewIDWithName(metadata.Type, "bad_hostless_endpoint"), errorMessage: "host not found in HTTP endpoint", }, { - id: component.NewIDWithName(typeStr, "bad_invalid_url"), + id: component.NewIDWithName(metadata.Type, "bad_invalid_url"), errorMessage: "endpoint is not a valid URL: parse \"#$%^&*()_\": invalid URL escape \"%^&\"", }, } diff --git a/receiver/expvarreceiver/doc.go b/receiver/expvarreceiver/doc.go index 09770d9a330e..b769331269f9 100644 --- a/receiver/expvarreceiver/doc.go +++ b/receiver/expvarreceiver/doc.go @@ -1,6 +1,6 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -package expvarreceiver // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/expvarreceiver" - //go:generate mdatagen metadata.yaml + +package expvarreceiver // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/expvarreceiver" diff --git a/receiver/expvarreceiver/documentation.md b/receiver/expvarreceiver/documentation.md index ad1b01b0a022..549ed027b8ec 100644 --- a/receiver/expvarreceiver/documentation.md +++ b/receiver/expvarreceiver/documentation.md @@ -1,6 +1,6 @@ [comment]: <> (Code generated by mdatagen. DO NOT EDIT.) -# expvarreceiver +# expvar ## Default Metrics diff --git a/receiver/expvarreceiver/factory.go b/receiver/expvarreceiver/factory.go index e80ff01a1256..c488c921b240 100644 --- a/receiver/expvarreceiver/factory.go +++ b/receiver/expvarreceiver/factory.go @@ -17,8 +17,6 @@ import ( ) const ( - typeStr = "expvar" - stability = component.StabilityLevelBeta defaultPath = "/debug/vars" defaultEndpoint = "http://localhost:8000" + defaultPath defaultTimeout = 3 * time.Second @@ -26,9 +24,9 @@ const ( func NewFactory() receiver.Factory { return receiver.NewFactory( - typeStr, + metadata.Type, newDefaultConfig, - receiver.WithMetrics(newMetricsReceiver, stability)) + receiver.WithMetrics(newMetricsReceiver, metadata.MetricsStability)) } func newMetricsReceiver( @@ -41,7 +39,7 @@ func newMetricsReceiver( expVar := newExpVarScraper(cfg, set) scraper, err := scraperhelper.NewScraper( - typeStr, + metadata.Type, expVar.scrape, scraperhelper.WithStart(expVar.start), ) @@ -59,7 +57,7 @@ func newMetricsReceiver( func newDefaultConfig() component.Config { return &Config{ - ScraperControllerSettings: scraperhelper.NewDefaultScraperControllerSettings(typeStr), + ScraperControllerSettings: scraperhelper.NewDefaultScraperControllerSettings(metadata.Type), HTTPClientSettings: confighttp.HTTPClientSettings{ Endpoint: defaultEndpoint, Timeout: defaultTimeout, diff --git a/receiver/expvarreceiver/internal/metadata/generated_config.go b/receiver/expvarreceiver/internal/metadata/generated_config.go index 423a2049ac9f..d1be7345bdae 100644 --- a/receiver/expvarreceiver/internal/metadata/generated_config.go +++ b/receiver/expvarreceiver/internal/metadata/generated_config.go @@ -23,7 +23,7 @@ func (ms *MetricConfig) Unmarshal(parser *confmap.Conf) error { return nil } -// MetricsConfig provides config for expvarreceiver metrics. +// MetricsConfig provides config for expvar metrics. type MetricsConfig struct { ProcessRuntimeMemstatsBuckHashSys MetricConfig `mapstructure:"process.runtime.memstats.buck_hash_sys"` ProcessRuntimeMemstatsFrees MetricConfig `mapstructure:"process.runtime.memstats.frees"` @@ -136,7 +136,7 @@ func DefaultMetricsConfig() MetricsConfig { } } -// MetricsBuilderConfig is a configuration for expvarreceiver metrics builder. +// MetricsBuilderConfig is a configuration for expvar metrics builder. type MetricsBuilderConfig struct { Metrics MetricsConfig `mapstructure:"metrics"` } diff --git a/receiver/expvarreceiver/internal/metadata/generated_status.go b/receiver/expvarreceiver/internal/metadata/generated_status.go new file mode 100644 index 000000000000..82ab4ddd3281 --- /dev/null +++ b/receiver/expvarreceiver/internal/metadata/generated_status.go @@ -0,0 +1,12 @@ +// Code generated by mdatagen. DO NOT EDIT. + +package metadata + +import ( + "go.opentelemetry.io/collector/component" +) + +const ( + Type = "expvar" + MetricsStability = component.StabilityLevelAlpha +) diff --git a/receiver/expvarreceiver/metadata.yaml b/receiver/expvarreceiver/metadata.yaml index b1d854476683..1ae5a1c8caf1 100644 --- a/receiver/expvarreceiver/metadata.yaml +++ b/receiver/expvarreceiver/metadata.yaml @@ -1,4 +1,10 @@ -type: expvarreceiver +type: expvar + +status: + class: receiver + stability: + alpha: [metrics] + distributions: [contrib, sumo] metrics: process.runtime.memstats.total_alloc: