@@ -11,14 +11,12 @@ import (
1111 "fmt"
1212 "runtime"
1313
14- config "go.opentelemetry.io/contrib/otelconf/v0.3.0"
1514 noopmetric "go.opentelemetry.io/otel/metric/noop"
1615 nooptrace "go.opentelemetry.io/otel/trace/noop"
1716 "go.uber.org/multierr"
1817 "go.uber.org/zap"
1918
2019 "go.opentelemetry.io/collector/component"
21- "go.opentelemetry.io/collector/config/configtelemetry"
2220 "go.opentelemetry.io/collector/confmap"
2321 "go.opentelemetry.io/collector/connector"
2422 "go.opentelemetry.io/collector/exporter"
@@ -29,6 +27,7 @@ import (
2927 "go.opentelemetry.io/collector/service/extensions"
3028 "go.opentelemetry.io/collector/service/internal/builders"
3129 "go.opentelemetry.io/collector/service/internal/graph"
30+ "go.opentelemetry.io/collector/service/internal/metricviews"
3231 "go.opentelemetry.io/collector/service/internal/moduleinfo"
3332 "go.opentelemetry.io/collector/service/internal/proctelemetry"
3433 "go.opentelemetry.io/collector/service/internal/status"
@@ -172,7 +171,7 @@ func New(ctx context.Context, set Settings, cfg Config) (_ *Service, resultErr e
172171 meterSettings := telemetry.MeterSettings {
173172 Settings : telemetrySettings ,
174173 Logger : logger ,
175- DefaultViews : configureViews ,
174+ DefaultViews : metricviews . DefaultViews ,
176175 }
177176 meterProvider , err := set .TelemetryFactory .CreateMeterProvider (ctx , meterSettings , cfg .Telemetry )
178177 if err != nil {
@@ -343,140 +342,6 @@ func (srv *Service) Logger() *zap.Logger {
343342 return srv .telemetrySettings .Logger
344343}
345344
346- func dropViewOption (selector * config.ViewSelector ) config.View {
347- return config.View {
348- Selector : selector ,
349- Stream : & config.ViewStream {
350- Aggregation : & config.ViewStreamAggregation {
351- Drop : config.ViewStreamAggregationDrop {},
352- },
353- },
354- }
355- }
356-
357- func configureViews (level configtelemetry.Level ) []config.View {
358- views := []config.View {}
359-
360- if level < configtelemetry .LevelDetailed {
361- // Drop all otelhttp and otelgrpc metrics if the level is not detailed.
362- views = append (views ,
363- dropViewOption (& config.ViewSelector {
364- MeterName : ptr ("go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" ),
365- }),
366- dropViewOption (& config.ViewSelector {
367- MeterName : ptr ("go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" ),
368- }),
369- // Drop duration metric if the level is not detailed
370- dropViewOption (& config.ViewSelector {
371- MeterName : ptr ("go.opentelemetry.io/collector/processor/processorhelper" ),
372- InstrumentName : ptr ("otelcol_processor_internal_duration" ),
373- }),
374- )
375- }
376-
377- // otel-arrow library metrics
378- // See https://github.com/open-telemetry/otel-arrow/blob/c39257/pkg/otel/arrow_record/consumer.go#L174-L176
379- if level < configtelemetry .LevelNormal {
380- scope := ptr ("otel-arrow/pkg/otel/arrow_record" )
381- views = append (views ,
382- dropViewOption (& config.ViewSelector {
383- MeterName : scope ,
384- InstrumentName : ptr ("arrow_batch_records" ),
385- }),
386- dropViewOption (& config.ViewSelector {
387- MeterName : scope ,
388- InstrumentName : ptr ("arrow_schema_resets" ),
389- }),
390- dropViewOption (& config.ViewSelector {
391- MeterName : scope ,
392- InstrumentName : ptr ("arrow_memory_inuse" ),
393- }),
394- )
395- }
396-
397- // contrib's internal/otelarrow/netstats metrics
398- // See
399- // - https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/a25f05/internal/otelarrow/netstats/netstats.go#L130
400- // - https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/a25f05/internal/otelarrow/netstats/netstats.go#L165
401- if level < configtelemetry .LevelDetailed {
402- scope := ptr ("github.com/open-telemetry/opentelemetry-collector-contrib/internal/otelarrow/netstats" )
403-
404- views = append (views ,
405- // Compressed size metrics.
406- dropViewOption (& config.ViewSelector {
407- MeterName : scope ,
408- InstrumentName : ptr ("otelcol_*_compressed_size" ),
409- }),
410- dropViewOption (& config.ViewSelector {
411- MeterName : scope ,
412- InstrumentName : ptr ("otelcol_*_compressed_size" ),
413- }),
414-
415- // makeRecvMetrics for exporters.
416- dropViewOption (& config.ViewSelector {
417- MeterName : scope ,
418- InstrumentName : ptr ("otelcol_exporter_recv" ),
419- }),
420- dropViewOption (& config.ViewSelector {
421- MeterName : scope ,
422- InstrumentName : ptr ("otelcol_exporter_recv_wire" ),
423- }),
424-
425- // makeSentMetrics for receivers.
426- dropViewOption (& config.ViewSelector {
427- MeterName : scope ,
428- InstrumentName : ptr ("otelcol_receiver_sent" ),
429- }),
430- dropViewOption (& config.ViewSelector {
431- MeterName : scope ,
432- InstrumentName : ptr ("otelcol_receiver_sent_wire" ),
433- }),
434- )
435- }
436-
437- // Batch exporter metrics
438- if level < configtelemetry .LevelDetailed {
439- scope := ptr ("go.opentelemetry.io/collector/exporter/exporterhelper" )
440- views = append (views , dropViewOption (& config.ViewSelector {
441- MeterName : scope ,
442- InstrumentName : ptr ("otelcol_exporter_queue_batch_send_size_bytes" ),
443- }))
444- }
445-
446- // Batch processor metrics
447- scope := ptr ("go.opentelemetry.io/collector/processor/batchprocessor" )
448- if level < configtelemetry .LevelNormal {
449- views = append (views , dropViewOption (& config.ViewSelector {
450- MeterName : scope ,
451- }))
452- } else if level < configtelemetry .LevelDetailed {
453- views = append (views , dropViewOption (& config.ViewSelector {
454- MeterName : scope ,
455- InstrumentName : ptr ("otelcol_processor_batch_batch_send_size_bytes" ),
456- }))
457- }
458-
459- // Internal graph metrics
460- graphScope := ptr ("go.opentelemetry.io/collector/service" )
461- if level < configtelemetry .LevelDetailed {
462- views = append (views ,
463- dropViewOption (& config.ViewSelector {
464- MeterName : graphScope ,
465- InstrumentName : ptr ("otelcol.*.consumed.size" ),
466- }),
467- dropViewOption (& config.ViewSelector {
468- MeterName : graphScope ,
469- InstrumentName : ptr ("otelcol.*.produced.size" ),
470- }))
471- }
472-
473- return views
474- }
475-
476- func ptr [T any ](v T ) * T {
477- return & v
478- }
479-
480345// Validate verifies the graph by calling the internal graph.Build.
481346func Validate (ctx context.Context , set Settings , cfg Config ) error {
482347 tel := component.TelemetrySettings {
0 commit comments