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

[connector/*] generate status from metadata.yaml #22800

Merged
merged 6 commits into from
Jun 1, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
use count connector to demonstrate status generation
  • Loading branch information
mwear committed Jun 1, 2023
commit 6df7782ceec27dbeda202a130748c84097b3a8d4
30 changes: 18 additions & 12 deletions connector/countconnector/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
# Count Connector

| Status | |
| ------------------------ | --------------------------------------------------------- |
| Stability | [in development] |
<!-- status autogenerated section -->
| Status | |
| ------------- |-----------|
| Stability | [development] |
| Supported pipeline types | See [Supported Pipeline Types](#supported-pipeline-types) |
| Distributions | [contrib], [sumo] |

The `count` connector can be used to count spans, span events, metrics, data points, and log records.
| Distributions | [contrib], [sumo] |

## Supported Pipeline Types
| [Exporter Pipeline Type] | [Receiver Pipeline Type] | [Stability Level] |
| ------------------------ | ------------------------ | ----------------- |
| traces | metrics | [development] |
| metrics | metrics | [development] |
| logs | metrics | [development] |

| [Exporter Pipeline Type] | [Receiver Pipeline Type] |
| ------------------------ | ------------------------ |
| traces | metrics |
| metrics | metrics |
| logs | metrics |
[development]: https://github.com/open-telemetry/opentelemetry-collector#development
[contrib]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib
[sumo]: https://github.com/SumoLogic/sumologic-otel-collector
[Exporter Pipeline Type]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/README.md#exporter-pipeline-type
[Receiver Pipeline Type]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/README.md#receiver-pipeline-type
[Stability Level]: https://github.com/open-telemetry/opentelemetry-collector#stability-levels
codeboten marked this conversation as resolved.
Show resolved Hide resolved
<!-- end autogenerated section -->

The `count` connector can be used to count spans, span events, metrics, data points, and log records.
## Configuration

If you are not already familiar with connectors, you may find it helpful to first visit the [Connectors README].
Expand Down
4 changes: 3 additions & 1 deletion connector/countconnector/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import (
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/confmap/confmaptest"

"github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector/internal/metadata"
)

func TestLoadConfig(t *testing.T) {
Expand Down Expand Up @@ -331,7 +333,7 @@ func TestLoadConfig(t *testing.T) {
factory := NewFactory()
cfg := factory.CreateDefaultConfig()

sub, err := cm.Sub(component.NewIDWithName(typeStr, tc.name).String())
sub, err := cm.Sub(component.NewIDWithName(metadata.Type, tc.name).String())
require.NoError(t, err)
require.NoError(t, component.UnmarshalConfig(sub, cfg))

Expand Down
16 changes: 7 additions & 9 deletions connector/countconnector/factory.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

//go:generate mdatagen metadata.yaml

package countconnector // import "github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector"

import (
Expand All @@ -10,6 +12,7 @@ import (
"go.opentelemetry.io/collector/connector"
"go.opentelemetry.io/collector/consumer"

"github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector/internal/metadata"
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter/expr"
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter/filterottl"
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl"
Expand All @@ -20,19 +23,14 @@ import (
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/contexts/ottlspanevent"
)

const (
typeStr = "count"
stability = component.StabilityLevelDevelopment
)

// NewFactory returns a ConnectorFactory.
func NewFactory() connector.Factory {
return connector.NewFactory(
typeStr,
metadata.Type,
createDefaultConfig,
connector.WithTracesToMetrics(createTracesToMetrics, component.StabilityLevelDevelopment),
connector.WithMetricsToMetrics(createMetricsToMetrics, component.StabilityLevelDevelopment),
connector.WithLogsToMetrics(createLogsToMetrics, component.StabilityLevelDevelopment),
connector.WithTracesToMetrics(createTracesToMetrics, metadata.TracesToMetricsStability),
connector.WithMetricsToMetrics(createMetricsToMetrics, metadata.MetricsToMetricsStability),
connector.WithLogsToMetrics(createLogsToMetrics, metadata.LogsToMetricsStability),
)
}

Expand Down
14 changes: 14 additions & 0 deletions connector/countconnector/internal/metadata/generated_status.go

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

7 changes: 7 additions & 0 deletions connector/countconnector/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
type: count

status:
class: connector
stability:
development: [traces_to_metrics, metrics_to_metrics, logs_to_metrics]
distributions: [contrib, sumo]