Skip to content

Commit

Permalink
[receiver/expvar] use generated status header (open-telemetry#22765)
Browse files Browse the repository at this point in the history
This PR updates the component to generate the status table using mdatagen.

Linked issue: open-telemetry#21213

Signed-off-by: Alex Boten <[email protected]>
  • Loading branch information
Alex Boten authored May 25, 2023
1 parent ab650dd commit 3744b55
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 26 deletions.
19 changes: 10 additions & 9 deletions receiver/expvarreceiver/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
# Expvar Receiver

| Status | |
| ------------------------ |-------------------|
| Stability | [alpha] |
| Supported pipeline types | metrics |
| Distributions | [contrib], [sumo] |
<!-- status autogenerated section -->
| 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
<!-- end autogenerated section -->

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
Expand Down Expand Up @@ -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
10 changes: 5 additions & 5 deletions receiver/expvarreceiver/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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 \"%^&\"",
},
}
Expand Down
4 changes: 2 additions & 2 deletions receiver/expvarreceiver/doc.go
Original file line number Diff line number Diff line change
@@ -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"
2 changes: 1 addition & 1 deletion receiver/expvarreceiver/documentation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[comment]: <> (Code generated by mdatagen. DO NOT EDIT.)

# expvarreceiver
# expvar

## Default Metrics

Expand Down
10 changes: 4 additions & 6 deletions receiver/expvarreceiver/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,16 @@ import (
)

const (
typeStr = "expvar"
stability = component.StabilityLevelBeta
defaultPath = "/debug/vars"
defaultEndpoint = "http://localhost:8000" + defaultPath
defaultTimeout = 3 * time.Second
)

func NewFactory() receiver.Factory {
return receiver.NewFactory(
typeStr,
metadata.Type,
newDefaultConfig,
receiver.WithMetrics(newMetricsReceiver, stability))
receiver.WithMetrics(newMetricsReceiver, metadata.MetricsStability))
}

func newMetricsReceiver(
Expand All @@ -41,7 +39,7 @@ func newMetricsReceiver(

expVar := newExpVarScraper(cfg, set)
scraper, err := scraperhelper.NewScraper(
typeStr,
metadata.Type,
expVar.scrape,
scraperhelper.WithStart(expVar.start),
)
Expand All @@ -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,
Expand Down
4 changes: 2 additions & 2 deletions receiver/expvarreceiver/internal/metadata/generated_config.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions receiver/expvarreceiver/internal/metadata/generated_status.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion receiver/expvarreceiver/metadata.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
type: expvarreceiver
type: expvar

status:
class: receiver
stability:
alpha: [metrics]
distributions: [contrib, sumo]

metrics:
process.runtime.memstats.total_alloc:
Expand Down

0 comments on commit 3744b55

Please sign in to comment.