Expose telemetry level in the configtelemetry (#1796)
Next PR will add a config setting that can be embedded in every component config. Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
parent
6d1c18940e
commit
e7e6693926
|
|
@ -0,0 +1,30 @@
|
||||||
|
// Copyright The OpenTelemetry Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package configtelemetry
|
||||||
|
|
||||||
|
const (
|
||||||
|
// LevelNone indicates that no telemetry data should be collected.
|
||||||
|
LevelNone Level = iota - 1
|
||||||
|
// LevelBasic is the default and covers the basics of the service telemetry.
|
||||||
|
LevelBasic
|
||||||
|
// LevelNormal adds some other indicators on top of basic.
|
||||||
|
LevelNormal
|
||||||
|
// LevelDetailed adds dimensions and views to the previous levels.
|
||||||
|
LevelDetailed
|
||||||
|
)
|
||||||
|
|
||||||
|
// Level is the level of internal telemetry (metrics, logs, traces about the component itself)
|
||||||
|
// that every component should generate.
|
||||||
|
type Level int8
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
// Copyright The OpenTelemetry Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package configtelemetry
|
||||||
|
|
||||||
|
// Package with interfaces and structs only.
|
||||||
|
|
@ -20,6 +20,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/internal/version"
|
"go.opentelemetry.io/collector/internal/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -27,17 +28,6 @@ const (
|
||||||
metricsAddrCfg = "metrics-addr"
|
metricsAddrCfg = "metrics-addr"
|
||||||
metricsLevelCfg = "metrics-level"
|
metricsLevelCfg = "metrics-level"
|
||||||
metricsPrefixCfg = "metrics-prefix"
|
metricsPrefixCfg = "metrics-prefix"
|
||||||
|
|
||||||
// Telemetry levels
|
|
||||||
//
|
|
||||||
// None indicates that no telemetry data should be collected.
|
|
||||||
None Level = iota - 1
|
|
||||||
// Basic is the default and covers the basics of the service telemetry.
|
|
||||||
Basic
|
|
||||||
// Normal adds some other indicators on top of basic.
|
|
||||||
Normal
|
|
||||||
// Detailed adds dimensions and views to the previous levels.
|
|
||||||
Detailed
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
@ -97,17 +87,14 @@ func GetMetricsAddrDefault() string {
|
||||||
return ":8888"
|
return ":8888"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Level of telemetry data to be generated.
|
|
||||||
type Level int8
|
|
||||||
|
|
||||||
func GetAddInstanceID() bool {
|
func GetAddInstanceID() bool {
|
||||||
return *addInstanceIDPtr
|
return *addInstanceIDPtr
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLevel returns the Level represented by the string. The parsing is case-insensitive
|
// GetLevel returns the Level represented by the string. The parsing is case-insensitive
|
||||||
// and it returns error if the string value is unknown.
|
// and it returns error if the string value is unknown.
|
||||||
func GetLevel() (Level, error) {
|
func GetLevel() (configtelemetry.Level, error) {
|
||||||
var level Level
|
var level configtelemetry.Level
|
||||||
var str string
|
var str string
|
||||||
|
|
||||||
if metricsLevelPtr != nil {
|
if metricsLevelPtr != nil {
|
||||||
|
|
@ -116,13 +103,13 @@ func GetLevel() (Level, error) {
|
||||||
|
|
||||||
switch str {
|
switch str {
|
||||||
case "none":
|
case "none":
|
||||||
level = None
|
level = configtelemetry.LevelNone
|
||||||
case "", "basic":
|
case "", "basic":
|
||||||
level = Basic
|
level = configtelemetry.LevelBasic
|
||||||
case "normal":
|
case "normal":
|
||||||
level = Normal
|
level = configtelemetry.LevelNormal
|
||||||
case "detailed":
|
case "detailed":
|
||||||
level = Detailed
|
level = configtelemetry.LevelDetailed
|
||||||
default:
|
default:
|
||||||
return level, fmt.Errorf("unknown metrics level %q", str)
|
return level, fmt.Errorf("unknown metrics level %q", str)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ import (
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/component"
|
"go.opentelemetry.io/collector/component"
|
||||||
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/consumer"
|
"go.opentelemetry.io/collector/consumer"
|
||||||
"go.opentelemetry.io/collector/consumer/pdata"
|
"go.opentelemetry.io/collector/consumer/pdata"
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
|
||||||
"go.opentelemetry.io/collector/processor"
|
"go.opentelemetry.io/collector/processor"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -41,7 +41,7 @@ import (
|
||||||
type batchProcessor struct {
|
type batchProcessor struct {
|
||||||
name string
|
name string
|
||||||
logger *zap.Logger
|
logger *zap.Logger
|
||||||
telemetryLevel telemetry.Level
|
telemetryLevel configtelemetry.Level
|
||||||
|
|
||||||
sendBatchSize uint32
|
sendBatchSize uint32
|
||||||
timeout time.Duration
|
timeout time.Duration
|
||||||
|
|
@ -74,7 +74,7 @@ var _ consumer.TraceConsumer = (*batchProcessor)(nil)
|
||||||
var _ consumer.MetricsConsumer = (*batchProcessor)(nil)
|
var _ consumer.MetricsConsumer = (*batchProcessor)(nil)
|
||||||
var _ consumer.LogsConsumer = (*batchProcessor)(nil)
|
var _ consumer.LogsConsumer = (*batchProcessor)(nil)
|
||||||
|
|
||||||
func newBatchProcessor(params component.ProcessorCreateParams, cfg *Config, batch batch, telemetryLevel telemetry.Level) *batchProcessor {
|
func newBatchProcessor(params component.ProcessorCreateParams, cfg *Config, batch batch, telemetryLevel configtelemetry.Level) *batchProcessor {
|
||||||
return &batchProcessor{
|
return &batchProcessor{
|
||||||
name: cfg.Name(),
|
name: cfg.Name(),
|
||||||
logger: params.Logger,
|
logger: params.Logger,
|
||||||
|
|
@ -158,7 +158,7 @@ func (bp *batchProcessor) sendItems(measure *stats.Int64Measure) {
|
||||||
statsTags := []tag.Mutator{tag.Insert(processor.TagProcessorNameKey, bp.name)}
|
statsTags := []tag.Mutator{tag.Insert(processor.TagProcessorNameKey, bp.name)}
|
||||||
_ = stats.RecordWithTags(context.Background(), statsTags, measure.M(1), statBatchSendSize.M(int64(bp.batch.itemCount())))
|
_ = stats.RecordWithTags(context.Background(), statsTags, measure.M(1), statBatchSendSize.M(int64(bp.batch.itemCount())))
|
||||||
|
|
||||||
if bp.telemetryLevel == telemetry.Detailed {
|
if bp.telemetryLevel == configtelemetry.LevelDetailed {
|
||||||
_ = stats.RecordWithTags(context.Background(), statsTags, statBatchSendSizeBytes.M(int64(bp.batch.size())))
|
_ = stats.RecordWithTags(context.Background(), statsTags, statBatchSendSizeBytes.M(int64(bp.batch.size())))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -188,17 +188,17 @@ func (bp *batchProcessor) ConsumeLogs(_ context.Context, ld pdata.Logs) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// newBatchTracesProcessor creates a new batch processor that batches traces by size or with timeout
|
// newBatchTracesProcessor creates a new batch processor that batches traces by size or with timeout
|
||||||
func newBatchTracesProcessor(params component.ProcessorCreateParams, trace consumer.TraceConsumer, cfg *Config, telemetryLevel telemetry.Level) *batchProcessor {
|
func newBatchTracesProcessor(params component.ProcessorCreateParams, trace consumer.TraceConsumer, cfg *Config, telemetryLevel configtelemetry.Level) *batchProcessor {
|
||||||
return newBatchProcessor(params, cfg, newBatchTraces(trace), telemetryLevel)
|
return newBatchProcessor(params, cfg, newBatchTraces(trace), telemetryLevel)
|
||||||
}
|
}
|
||||||
|
|
||||||
// newBatchMetricsProcessor creates a new batch processor that batches metrics by size or with timeout
|
// newBatchMetricsProcessor creates a new batch processor that batches metrics by size or with timeout
|
||||||
func newBatchMetricsProcessor(params component.ProcessorCreateParams, metrics consumer.MetricsConsumer, cfg *Config, telemetryLevel telemetry.Level) *batchProcessor {
|
func newBatchMetricsProcessor(params component.ProcessorCreateParams, metrics consumer.MetricsConsumer, cfg *Config, telemetryLevel configtelemetry.Level) *batchProcessor {
|
||||||
return newBatchProcessor(params, cfg, newBatchMetrics(metrics), telemetryLevel)
|
return newBatchProcessor(params, cfg, newBatchMetrics(metrics), telemetryLevel)
|
||||||
}
|
}
|
||||||
|
|
||||||
// newBatchLogsProcessor creates a new batch processor that batches logs by size or with timeout
|
// newBatchLogsProcessor creates a new batch processor that batches logs by size or with timeout
|
||||||
func newBatchLogsProcessor(params component.ProcessorCreateParams, logs consumer.LogsConsumer, cfg *Config, telemetryLevel telemetry.Level) *batchProcessor {
|
func newBatchLogsProcessor(params component.ProcessorCreateParams, logs consumer.LogsConsumer, cfg *Config, telemetryLevel configtelemetry.Level) *batchProcessor {
|
||||||
return newBatchProcessor(params, cfg, newBatchLogs(logs), telemetryLevel)
|
return newBatchProcessor(params, cfg, newBatchLogs(logs), telemetryLevel)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@ import (
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/component"
|
"go.opentelemetry.io/collector/component"
|
||||||
"go.opentelemetry.io/collector/component/componenttest"
|
"go.opentelemetry.io/collector/component/componenttest"
|
||||||
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/consumer/pdata"
|
"go.opentelemetry.io/collector/consumer/pdata"
|
||||||
"go.opentelemetry.io/collector/exporter/exportertest"
|
"go.opentelemetry.io/collector/exporter/exportertest"
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
|
||||||
"go.opentelemetry.io/collector/internal/data/testdata"
|
"go.opentelemetry.io/collector/internal/data/testdata"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -38,7 +38,7 @@ func TestBatchProcessorSpansDelivered(t *testing.T) {
|
||||||
cfg := createDefaultConfig().(*Config)
|
cfg := createDefaultConfig().(*Config)
|
||||||
cfg.SendBatchSize = 128
|
cfg.SendBatchSize = 128
|
||||||
creationParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
creationParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchTracesProcessor(creationParams, sink, cfg, telemetry.Detailed)
|
batcher := newBatchTracesProcessor(creationParams, sink, cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
requestCount := 1000
|
requestCount := 1000
|
||||||
|
|
@ -79,7 +79,7 @@ func TestBatchProcessorSpansDeliveredEnforceBatchSize(t *testing.T) {
|
||||||
cfg.SendBatchSize = 128
|
cfg.SendBatchSize = 128
|
||||||
cfg.SendBatchMaxSize = 128
|
cfg.SendBatchMaxSize = 128
|
||||||
creationParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
creationParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchTracesProcessor(creationParams, sink, cfg, telemetry.Basic)
|
batcher := newBatchTracesProcessor(creationParams, sink, cfg, configtelemetry.LevelBasic)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
requestCount := 1000
|
requestCount := 1000
|
||||||
|
|
@ -116,7 +116,7 @@ func TestBatchProcessorSpansDeliveredEnforceBatchSize(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBatchProcessorSentBySize(t *testing.T) {
|
func TestBatchProcessorSentBySize(t *testing.T) {
|
||||||
views := MetricViews(telemetry.Detailed)
|
views := MetricViews(configtelemetry.LevelDetailed)
|
||||||
view.Register(views...)
|
view.Register(views...)
|
||||||
defer view.Unregister(views...)
|
defer view.Unregister(views...)
|
||||||
|
|
||||||
|
|
@ -126,7 +126,7 @@ func TestBatchProcessorSentBySize(t *testing.T) {
|
||||||
cfg.SendBatchSize = uint32(sendBatchSize)
|
cfg.SendBatchSize = uint32(sendBatchSize)
|
||||||
cfg.Timeout = 500 * time.Millisecond
|
cfg.Timeout = 500 * time.Millisecond
|
||||||
creationParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
creationParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchTracesProcessor(creationParams, sink, cfg, telemetry.Detailed)
|
batcher := newBatchTracesProcessor(creationParams, sink, cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
requestCount := 100
|
requestCount := 100
|
||||||
|
|
@ -188,7 +188,7 @@ func TestBatchProcessorSentByTimeout(t *testing.T) {
|
||||||
spansPerRequest := 10
|
spansPerRequest := 10
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|
||||||
batcher := newBatchTracesProcessor(creationParams, sink, cfg, telemetry.Detailed)
|
batcher := newBatchTracesProcessor(creationParams, sink, cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
for requestNum := 0; requestNum < requestCount; requestNum++ {
|
for requestNum := 0; requestNum < requestCount; requestNum++ {
|
||||||
|
|
@ -233,7 +233,7 @@ func TestBatchProcessorTraceSendWhenClosing(t *testing.T) {
|
||||||
sink := &exportertest.SinkTraceExporter{}
|
sink := &exportertest.SinkTraceExporter{}
|
||||||
|
|
||||||
creationParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
creationParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchTracesProcessor(creationParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchTracesProcessor(creationParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
requestCount := 10
|
requestCount := 10
|
||||||
|
|
@ -262,7 +262,7 @@ func TestBatchMetricProcessor_ReceivingData(t *testing.T) {
|
||||||
sink := &exportertest.SinkMetricsExporter{}
|
sink := &exportertest.SinkMetricsExporter{}
|
||||||
|
|
||||||
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchMetricsProcessor(createParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchMetricsProcessor(createParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
metricDataSlice := make([]pdata.Metrics, 0, requestCount)
|
metricDataSlice := make([]pdata.Metrics, 0, requestCount)
|
||||||
|
|
@ -297,7 +297,7 @@ func TestBatchMetricProcessor_ReceivingData(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBatchMetricProcessor_BatchSize(t *testing.T) {
|
func TestBatchMetricProcessor_BatchSize(t *testing.T) {
|
||||||
views := MetricViews(telemetry.Detailed)
|
views := MetricViews(configtelemetry.LevelDetailed)
|
||||||
view.Register(views...)
|
view.Register(views...)
|
||||||
defer view.Unregister(views...)
|
defer view.Unregister(views...)
|
||||||
|
|
||||||
|
|
@ -313,7 +313,7 @@ func TestBatchMetricProcessor_BatchSize(t *testing.T) {
|
||||||
sink := &exportertest.SinkMetricsExporter{}
|
sink := &exportertest.SinkMetricsExporter{}
|
||||||
|
|
||||||
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchMetricsProcessor(createParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchMetricsProcessor(createParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|
@ -368,7 +368,7 @@ func TestBatchMetricsProcessor_Timeout(t *testing.T) {
|
||||||
sink := &exportertest.SinkMetricsExporter{}
|
sink := &exportertest.SinkMetricsExporter{}
|
||||||
|
|
||||||
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchMetricsProcessor(createParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchMetricsProcessor(createParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|
@ -415,7 +415,7 @@ func TestBatchMetricProcessor_Shutdown(t *testing.T) {
|
||||||
sink := &exportertest.SinkMetricsExporter{}
|
sink := &exportertest.SinkMetricsExporter{}
|
||||||
|
|
||||||
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchMetricsProcessor(createParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchMetricsProcessor(createParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
for requestNum := 0; requestNum < requestCount; requestNum++ {
|
for requestNum := 0; requestNum < requestCount; requestNum++ {
|
||||||
|
|
@ -518,7 +518,7 @@ func TestBatchLogProcessor_ReceivingData(t *testing.T) {
|
||||||
sink := &exportertest.SinkLogsExporter{}
|
sink := &exportertest.SinkLogsExporter{}
|
||||||
|
|
||||||
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchLogsProcessor(createParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchLogsProcessor(createParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
logDataSlice := make([]pdata.Logs, 0, requestCount)
|
logDataSlice := make([]pdata.Logs, 0, requestCount)
|
||||||
|
|
@ -553,7 +553,7 @@ func TestBatchLogProcessor_ReceivingData(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBatchLogProcessor_BatchSize(t *testing.T) {
|
func TestBatchLogProcessor_BatchSize(t *testing.T) {
|
||||||
views := MetricViews(telemetry.Detailed)
|
views := MetricViews(configtelemetry.LevelDetailed)
|
||||||
view.Register(views...)
|
view.Register(views...)
|
||||||
defer view.Unregister(views...)
|
defer view.Unregister(views...)
|
||||||
|
|
||||||
|
|
@ -569,7 +569,7 @@ func TestBatchLogProcessor_BatchSize(t *testing.T) {
|
||||||
sink := &exportertest.SinkLogsExporter{}
|
sink := &exportertest.SinkLogsExporter{}
|
||||||
|
|
||||||
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchLogsProcessor(createParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchLogsProcessor(createParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|
@ -624,7 +624,7 @@ func TestBatchLogsProcessor_Timeout(t *testing.T) {
|
||||||
sink := &exportertest.SinkLogsExporter{}
|
sink := &exportertest.SinkLogsExporter{}
|
||||||
|
|
||||||
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchLogsProcessor(createParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchLogsProcessor(createParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|
@ -671,7 +671,7 @@ func TestBatchLogProcessor_Shutdown(t *testing.T) {
|
||||||
sink := &exportertest.SinkLogsExporter{}
|
sink := &exportertest.SinkLogsExporter{}
|
||||||
|
|
||||||
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
createParams := component.ProcessorCreateParams{Logger: zap.NewNop()}
|
||||||
batcher := newBatchLogsProcessor(createParams, sink, &cfg, telemetry.Detailed)
|
batcher := newBatchLogsProcessor(createParams, sink, &cfg, configtelemetry.LevelDetailed)
|
||||||
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
require.NoError(t, batcher.Start(context.Background(), componenttest.NewNopHost()))
|
||||||
|
|
||||||
for requestNum := 0; requestNum < requestCount; requestNum++ {
|
for requestNum := 0; requestNum < requestCount; requestNum++ {
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"go.opencensus.io/stats/view"
|
"go.opencensus.io/stats/view"
|
||||||
"go.opencensus.io/tag"
|
"go.opencensus.io/tag"
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/obsreport"
|
"go.opentelemetry.io/collector/obsreport"
|
||||||
"go.opentelemetry.io/collector/processor"
|
"go.opentelemetry.io/collector/processor"
|
||||||
)
|
)
|
||||||
|
|
@ -32,8 +32,8 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
// MetricViews returns the metrics views related to batching
|
// MetricViews returns the metrics views related to batching
|
||||||
func MetricViews(level telemetry.Level) []*view.View {
|
func MetricViews(level configtelemetry.Level) []*view.View {
|
||||||
if level == telemetry.None {
|
if level == configtelemetry.LevelNone {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,21 +19,21 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestBatchProcessorMetrics(t *testing.T) {
|
func TestBatchProcessorMetrics(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
viewNames []string
|
viewNames []string
|
||||||
level telemetry.Level
|
level configtelemetry.Level
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
viewNames: []string{"batch_size_trigger_send", "timeout_trigger_send", "batch_send_size", "batch_send_size_bytes"},
|
viewNames: []string{"batch_size_trigger_send", "timeout_trigger_send", "batch_send_size", "batch_send_size_bytes"},
|
||||||
level: telemetry.Detailed,
|
level: configtelemetry.LevelDetailed,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
viewNames: []string{},
|
viewNames: []string{},
|
||||||
level: telemetry.None,
|
level: configtelemetry.LevelNone,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"go.opencensus.io/stats/view"
|
"go.opencensus.io/stats/view"
|
||||||
"go.opencensus.io/tag"
|
"go.opencensus.io/tag"
|
||||||
|
|
||||||
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/consumer/pdata"
|
"go.opentelemetry.io/collector/consumer/pdata"
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
||||||
"go.opentelemetry.io/collector/obsreport"
|
"go.opentelemetry.io/collector/obsreport"
|
||||||
|
|
@ -72,13 +73,13 @@ func (scm *SpanCountStats) GetAllSpansCount() int {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MetricTagKeys returns the metric tag keys according to the given telemetry level.
|
// MetricTagKeys returns the metric tag keys according to the given telemetry level.
|
||||||
func MetricTagKeys(level telemetry.Level) []tag.Key {
|
func MetricTagKeys(level configtelemetry.Level) []tag.Key {
|
||||||
var tagKeys []tag.Key
|
var tagKeys []tag.Key
|
||||||
switch level {
|
switch level {
|
||||||
case telemetry.Detailed:
|
case configtelemetry.LevelDetailed:
|
||||||
tagKeys = append(tagKeys, TagServiceNameKey)
|
tagKeys = append(tagKeys, TagServiceNameKey)
|
||||||
fallthrough
|
fallthrough
|
||||||
case telemetry.Normal, telemetry.Basic:
|
case configtelemetry.LevelNormal, configtelemetry.LevelBasic:
|
||||||
tagKeys = append(tagKeys, TagProcessorNameKey)
|
tagKeys = append(tagKeys, TagProcessorNameKey)
|
||||||
default:
|
default:
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -88,7 +89,7 @@ func MetricTagKeys(level telemetry.Level) []tag.Key {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MetricViews return the metrics views according to given telemetry level.
|
// MetricViews return the metrics views according to given telemetry level.
|
||||||
func MetricViews(level telemetry.Level) []*view.View {
|
func MetricViews(level configtelemetry.Level) []*view.View {
|
||||||
tagKeys := MetricTagKeys(level)
|
tagKeys := MetricTagKeys(level)
|
||||||
if tagKeys == nil {
|
if tagKeys == nil {
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -177,7 +178,7 @@ func RecordsSpanCountMetrics(ctx context.Context, scm *SpanCountStats, measure *
|
||||||
|
|
||||||
func serviceTagsEnabled() bool {
|
func serviceTagsEnabled() bool {
|
||||||
level, err := telemetry.GetLevel()
|
level, err := telemetry.GetLevel()
|
||||||
return err == nil && level == telemetry.Detailed
|
return err == nil && level == configtelemetry.LevelDetailed
|
||||||
}
|
}
|
||||||
|
|
||||||
// spanCountByResourceStringAttribute calculates the number of spans by resource specified by
|
// spanCountByResourceStringAttribute calculates the number of spans by resource specified by
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"go.opencensus.io/stats/view"
|
"go.opencensus.io/stats/view"
|
||||||
"go.opencensus.io/tag"
|
"go.opencensus.io/tag"
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/obsreport"
|
"go.opentelemetry.io/collector/obsreport"
|
||||||
"go.opentelemetry.io/collector/processor"
|
"go.opentelemetry.io/collector/processor"
|
||||||
)
|
)
|
||||||
|
|
@ -58,8 +58,8 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
// MetricViews return the metrics views according to given telemetry level.
|
// MetricViews return the metrics views according to given telemetry level.
|
||||||
func MetricViews(level telemetry.Level) []*view.View {
|
func MetricViews(level configtelemetry.Level) []*view.View {
|
||||||
if level == telemetry.None {
|
if level == configtelemetry.LevelNone {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,10 @@ import (
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/component"
|
"go.opentelemetry.io/collector/component"
|
||||||
"go.opentelemetry.io/collector/component/componenttest"
|
"go.opentelemetry.io/collector/component/componenttest"
|
||||||
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/consumer"
|
"go.opentelemetry.io/collector/consumer"
|
||||||
"go.opentelemetry.io/collector/consumer/consumererror"
|
"go.opentelemetry.io/collector/consumer/consumererror"
|
||||||
"go.opentelemetry.io/collector/consumer/pdata"
|
"go.opentelemetry.io/collector/consumer/pdata"
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
|
||||||
"go.opentelemetry.io/collector/internal/data/testdata"
|
"go.opentelemetry.io/collector/internal/data/testdata"
|
||||||
"go.opentelemetry.io/collector/obsreport/obsreporttest"
|
"go.opentelemetry.io/collector/obsreport/obsreporttest"
|
||||||
"go.opentelemetry.io/collector/processor"
|
"go.opentelemetry.io/collector/processor"
|
||||||
|
|
@ -289,7 +289,7 @@ func TestTraceQueueProcessorHappyPath(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer doneFn()
|
defer doneFn()
|
||||||
|
|
||||||
views := processor.MetricViews(telemetry.Detailed)
|
views := processor.MetricViews(configtelemetry.LevelDetailed)
|
||||||
assert.NoError(t, view.Register(views...))
|
assert.NoError(t, view.Register(views...))
|
||||||
defer view.Unregister(views...)
|
defer view.Unregister(views...)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import (
|
||||||
"go.opencensus.io/stats/view"
|
"go.opencensus.io/stats/view"
|
||||||
"go.opencensus.io/tag"
|
"go.opencensus.io/tag"
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/obsreport"
|
"go.opentelemetry.io/collector/obsreport"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -45,8 +45,8 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
// SamplingProcessorMetricViews return the metrics views according to given telemetry level.
|
// SamplingProcessorMetricViews return the metrics views according to given telemetry level.
|
||||||
func SamplingProcessorMetricViews(level telemetry.Level) []*view.View {
|
func SamplingProcessorMetricViews(level configtelemetry.Level) []*view.View {
|
||||||
if level == telemetry.None {
|
if level == configtelemetry.LevelNone {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"go.opencensus.io/stats"
|
"go.opencensus.io/stats"
|
||||||
"go.opencensus.io/stats/view"
|
"go.opencensus.io/stats/view"
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
@ -80,8 +80,8 @@ var (
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func Views(level telemetry.Level) []*view.View {
|
func Views(level configtelemetry.Level) []*view.View {
|
||||||
if level == telemetry.None {
|
if level == configtelemetry.LevelNone {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,10 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestViews(t *testing.T) {
|
func TestViews(t *testing.T) {
|
||||||
require.Greater(t, len(Views(telemetry.Basic)), 2)
|
require.Greater(t, len(Views(configtelemetry.LevelBasic)), 2)
|
||||||
require.Len(t, Views(telemetry.None), 0)
|
require.Len(t, Views(configtelemetry.LevelNone), 0)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import (
|
||||||
"go.opencensus.io/stats/view"
|
"go.opencensus.io/stats/view"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
|
"go.opentelemetry.io/collector/config/configtelemetry"
|
||||||
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
"go.opentelemetry.io/collector/internal/collector/telemetry"
|
||||||
"go.opentelemetry.io/collector/obsreport"
|
"go.opentelemetry.io/collector/obsreport"
|
||||||
"go.opentelemetry.io/collector/processor"
|
"go.opentelemetry.io/collector/processor"
|
||||||
|
|
@ -58,7 +59,7 @@ func (tel *appTelemetry) init(asyncErrorChannel chan<- error, ballastSizeBytes u
|
||||||
|
|
||||||
metricsAddr := telemetry.GetMetricsAddr()
|
metricsAddr := telemetry.GetMetricsAddr()
|
||||||
|
|
||||||
if level == telemetry.None || metricsAddr == "" {
|
if level == configtelemetry.LevelNone || metricsAddr == "" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue