Documentation ¶
Overview ¶
Package config can be used to parse a configuration file that follows the JSON Schema defined by the OpenTelemetry Configuration schema.
Index ¶
- type AttributeLimits
- type Attributes
- type BatchLogRecordProcessor
- type BatchSpanProcessor
- type Common
- type ConfigurationOption
- type Console
- type Headers
- type LogRecordExporter
- type LogRecordLimits
- type LogRecordProcessor
- type LoggerProvider
- type MeterProvider
- type MetricExporter
- type MetricReader
- type OTLP
- type OTLPMetric
- type OTLPMetricDefaultHistogramAggregation
- type OpenTelemetryConfiguration
- type PeriodicMetricReader
- type Prometheus
- type Propagator
- type PullMetricReader
- type Resource
- type SDK
- type Sampler
- type SamplerAlwaysOff
- type SamplerAlwaysOn
- type SamplerJaegerRemote
- type SamplerParentBased
- type SamplerTraceIDRatioBased
- type SimpleLogRecordProcessor
- type SimpleSpanProcessor
- type SpanExporter
- type SpanLimits
- type SpanProcessor
- type TracerProvider
- type View
- type ViewSelector
- type ViewSelectorInstrumentType
- type ViewStream
- type ViewStreamAggregation
- type ViewStreamAggregationBase2ExponentialBucketHistogram
- type ViewStreamAggregationDefault
- type ViewStreamAggregationDrop
- type ViewStreamAggregationExplicitBucketHistogram
- type ViewStreamAggregationLastValue
- type ViewStreamAggregationSum
- type Zipkin
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AttributeLimits ¶
type AttributeLimits struct { // AttributeCountLimit corresponds to the JSON schema field // "attribute_count_limit". AttributeCountLimit *int `mapstructure:"attribute_count_limit,omitempty"` // AttributeValueLengthLimit corresponds to the JSON schema field // "attribute_value_length_limit". AttributeValueLengthLimit *int `mapstructure:"attribute_value_length_limit,omitempty"` }
type Attributes ¶
type Attributes struct { // ServiceName corresponds to the JSON schema field "service.name". ServiceName *string `mapstructure:"service.name,omitempty"` }
type BatchLogRecordProcessor ¶
type BatchLogRecordProcessor struct { // ExportTimeout corresponds to the JSON schema field "export_timeout". ExportTimeout *int `mapstructure:"export_timeout,omitempty"` // Exporter corresponds to the JSON schema field "exporter". Exporter LogRecordExporter `mapstructure:"exporter"` // MaxExportBatchSize corresponds to the JSON schema field // "max_export_batch_size". MaxExportBatchSize *int `mapstructure:"max_export_batch_size,omitempty"` // MaxQueueSize corresponds to the JSON schema field "max_queue_size". MaxQueueSize *int `mapstructure:"max_queue_size,omitempty"` // ScheduleDelay corresponds to the JSON schema field "schedule_delay". ScheduleDelay *int `mapstructure:"schedule_delay,omitempty"` }
func (*BatchLogRecordProcessor) UnmarshalJSON ¶
func (j *BatchLogRecordProcessor) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type BatchSpanProcessor ¶
type BatchSpanProcessor struct { // ExportTimeout corresponds to the JSON schema field "export_timeout". ExportTimeout *int `mapstructure:"export_timeout,omitempty"` // Exporter corresponds to the JSON schema field "exporter". Exporter SpanExporter `mapstructure:"exporter"` // MaxExportBatchSize corresponds to the JSON schema field // "max_export_batch_size". MaxExportBatchSize *int `mapstructure:"max_export_batch_size,omitempty"` // MaxQueueSize corresponds to the JSON schema field "max_queue_size". MaxQueueSize *int `mapstructure:"max_queue_size,omitempty"` // ScheduleDelay corresponds to the JSON schema field "schedule_delay". ScheduleDelay *int `mapstructure:"schedule_delay,omitempty"` }
func (*BatchSpanProcessor) UnmarshalJSON ¶
func (j *BatchSpanProcessor) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type ConfigurationOption ¶
type ConfigurationOption interface {
// contains filtered or unexported methods
}
ConfigurationOption configures options for providers.
func WithContext ¶
func WithContext(ctx context.Context) ConfigurationOption
WithContext sets the context.Context for the SDK.
func WithOpenTelemetryConfiguration ¶
func WithOpenTelemetryConfiguration(cfg OpenTelemetryConfiguration) ConfigurationOption
WithOpenTelemetryConfiguration sets the OpenTelemetryConfiguration used to produce the SDK.
type LogRecordExporter ¶
type LogRecordExporter struct { // OTLP corresponds to the JSON schema field "otlp". OTLP *OTLP `mapstructure:"otlp,omitempty"` }
type LogRecordLimits ¶
type LogRecordLimits struct { // AttributeCountLimit corresponds to the JSON schema field // "attribute_count_limit". AttributeCountLimit *int `mapstructure:"attribute_count_limit,omitempty"` // AttributeValueLengthLimit corresponds to the JSON schema field // "attribute_value_length_limit". AttributeValueLengthLimit *int `mapstructure:"attribute_value_length_limit,omitempty"` }
type LogRecordProcessor ¶
type LogRecordProcessor struct { // Batch corresponds to the JSON schema field "batch". Batch *BatchLogRecordProcessor `mapstructure:"batch,omitempty"` // Simple corresponds to the JSON schema field "simple". Simple *SimpleLogRecordProcessor `mapstructure:"simple,omitempty"` }
type LoggerProvider ¶
type LoggerProvider struct { // Limits corresponds to the JSON schema field "limits". Limits *LogRecordLimits `mapstructure:"limits,omitempty"` // Processors corresponds to the JSON schema field "processors". Processors []LogRecordProcessor `mapstructure:"processors,omitempty"` }
type MeterProvider ¶
type MeterProvider struct { // Readers corresponds to the JSON schema field "readers". Readers []MetricReader `mapstructure:"readers,omitempty"` // Views corresponds to the JSON schema field "views". Views []View `mapstructure:"views,omitempty"` }
type MetricExporter ¶
type MetricExporter struct { // Console corresponds to the JSON schema field "console". Console Console `mapstructure:"console,omitempty"` // OTLP corresponds to the JSON schema field "otlp". OTLP *OTLPMetric `mapstructure:"otlp,omitempty"` // Prometheus corresponds to the JSON schema field "prometheus". Prometheus *Prometheus `mapstructure:"prometheus,omitempty"` }
type MetricReader ¶
type MetricReader struct { // Periodic corresponds to the JSON schema field "periodic". Periodic *PeriodicMetricReader `mapstructure:"periodic,omitempty"` // Pull corresponds to the JSON schema field "pull". Pull *PullMetricReader `mapstructure:"pull,omitempty"` }
type OTLP ¶
type OTLP struct { // Certificate corresponds to the JSON schema field "certificate". Certificate *string `mapstructure:"certificate,omitempty"` // ClientCertificate corresponds to the JSON schema field "client_certificate". ClientCertificate *string `mapstructure:"client_certificate,omitempty"` // ClientKey corresponds to the JSON schema field "client_key". ClientKey *string `mapstructure:"client_key,omitempty"` // Compression corresponds to the JSON schema field "compression". Compression *string `mapstructure:"compression,omitempty"` // Endpoint corresponds to the JSON schema field "endpoint". Endpoint string `mapstructure:"endpoint"` // Headers corresponds to the JSON schema field "headers". Headers Headers `mapstructure:"headers,omitempty"` // Protocol corresponds to the JSON schema field "protocol". Protocol string `mapstructure:"protocol"` // Timeout corresponds to the JSON schema field "timeout". Timeout *int `mapstructure:"timeout,omitempty"` }
func (*OTLP) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler.
type OTLPMetric ¶
type OTLPMetric struct { // Certificate corresponds to the JSON schema field "certificate". Certificate *string `mapstructure:"certificate,omitempty"` // ClientCertificate corresponds to the JSON schema field "client_certificate". ClientCertificate *string `mapstructure:"client_certificate,omitempty"` // ClientKey corresponds to the JSON schema field "client_key". ClientKey *string `mapstructure:"client_key,omitempty"` // Compression corresponds to the JSON schema field "compression". Compression *string `mapstructure:"compression,omitempty"` // DefaultHistogramAggregation corresponds to the JSON schema field // "default_histogram_aggregation". DefaultHistogramAggregation *OTLPMetricDefaultHistogramAggregation `mapstructure:"default_histogram_aggregation,omitempty"` // Endpoint corresponds to the JSON schema field "endpoint". Endpoint string `mapstructure:"endpoint"` // Headers corresponds to the JSON schema field "headers". Headers Headers `mapstructure:"headers,omitempty"` // Protocol corresponds to the JSON schema field "protocol". Protocol string `mapstructure:"protocol"` // TemporalityPreference corresponds to the JSON schema field // "temporality_preference". TemporalityPreference *string `mapstructure:"temporality_preference,omitempty"` // Timeout corresponds to the JSON schema field "timeout". Timeout *int `mapstructure:"timeout,omitempty"` }
func (*OTLPMetric) UnmarshalJSON ¶
func (j *OTLPMetric) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type OTLPMetricDefaultHistogramAggregation ¶
type OTLPMetricDefaultHistogramAggregation string
const OTLPMetricDefaultHistogramAggregationBase2ExponentialBucketHistogram OTLPMetricDefaultHistogramAggregation = "base2_exponential_bucket_histogram"
const OTLPMetricDefaultHistogramAggregationExplicitBucketHistogram OTLPMetricDefaultHistogramAggregation = "explicit_bucket_histogram"
func (*OTLPMetricDefaultHistogramAggregation) UnmarshalJSON ¶
func (j *OTLPMetricDefaultHistogramAggregation) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type OpenTelemetryConfiguration ¶
type OpenTelemetryConfiguration struct { // AttributeLimits corresponds to the JSON schema field "attribute_limits". AttributeLimits *AttributeLimits `mapstructure:"attribute_limits,omitempty"` // Disabled corresponds to the JSON schema field "disabled". Disabled *bool `mapstructure:"disabled,omitempty"` // FileFormat corresponds to the JSON schema field "file_format". FileFormat string `mapstructure:"file_format"` // LoggerProvider corresponds to the JSON schema field "logger_provider". LoggerProvider *LoggerProvider `mapstructure:"logger_provider,omitempty"` // MeterProvider corresponds to the JSON schema field "meter_provider". MeterProvider *MeterProvider `mapstructure:"meter_provider,omitempty"` // Propagator corresponds to the JSON schema field "propagator". Propagator *Propagator `mapstructure:"propagator,omitempty"` // Resource corresponds to the JSON schema field "resource". Resource *Resource `mapstructure:"resource,omitempty"` // TracerProvider corresponds to the JSON schema field "tracer_provider". TracerProvider *TracerProvider `mapstructure:"tracer_provider,omitempty"` }
func (*OpenTelemetryConfiguration) UnmarshalJSON ¶
func (j *OpenTelemetryConfiguration) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type PeriodicMetricReader ¶
type PeriodicMetricReader struct { // Exporter corresponds to the JSON schema field "exporter". Exporter MetricExporter `mapstructure:"exporter"` // Interval corresponds to the JSON schema field "interval". Interval *int `mapstructure:"interval,omitempty"` // Timeout corresponds to the JSON schema field "timeout". Timeout *int `mapstructure:"timeout,omitempty"` }
func (*PeriodicMetricReader) UnmarshalJSON ¶
func (j *PeriodicMetricReader) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type Prometheus ¶
type Propagator ¶
type Propagator struct { // Composite corresponds to the JSON schema field "composite". Composite []string `mapstructure:"composite,omitempty"` }
type PullMetricReader ¶
type PullMetricReader struct { // Exporter corresponds to the JSON schema field "exporter". Exporter MetricExporter `mapstructure:"exporter"` }
func (*PullMetricReader) UnmarshalJSON ¶
func (j *PullMetricReader) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type Resource ¶
type Resource struct { // Attributes corresponds to the JSON schema field "attributes". Attributes *Attributes `mapstructure:"attributes,omitempty"` }
type SDK ¶
type SDK struct {
// contains filtered or unexported fields
}
SDK is a struct that contains all the providers configured via the configuration model.
func NewSDK ¶
func NewSDK(opts ...ConfigurationOption) (SDK, error)
NewSDK creates SDK providers based on the configuration model.
Caution: The implementation only returns noop providers.
func (*SDK) MeterProvider ¶
func (s *SDK) MeterProvider() metric.MeterProvider
MeterProvider returns a configured metric.MeterProvider.
func (*SDK) TracerProvider ¶
func (s *SDK) TracerProvider() trace.TracerProvider
TracerProvider returns a configured trace.TracerProvider.
type Sampler ¶
type Sampler struct { // AlwaysOff corresponds to the JSON schema field "always_off". AlwaysOff SamplerAlwaysOff `mapstructure:"always_off,omitempty"` // AlwaysOn corresponds to the JSON schema field "always_on". AlwaysOn SamplerAlwaysOn `mapstructure:"always_on,omitempty"` // JaegerRemote corresponds to the JSON schema field "jaeger_remote". JaegerRemote *SamplerJaegerRemote `mapstructure:"jaeger_remote,omitempty"` // ParentBased corresponds to the JSON schema field "parent_based". ParentBased *SamplerParentBased `mapstructure:"parent_based,omitempty"` // TraceIDRatioBased corresponds to the JSON schema field "trace_id_ratio_based". TraceIDRatioBased *SamplerTraceIDRatioBased `mapstructure:"trace_id_ratio_based,omitempty"` }
type SamplerAlwaysOff ¶
type SamplerAlwaysOff map[string]interface{}
type SamplerAlwaysOn ¶
type SamplerAlwaysOn map[string]interface{}
type SamplerJaegerRemote ¶
type SamplerJaegerRemote struct { // Endpoint corresponds to the JSON schema field "endpoint". Endpoint *string `mapstructure:"endpoint,omitempty"` // InitialSampler corresponds to the JSON schema field "initial_sampler". InitialSampler *Sampler `mapstructure:"initial_sampler,omitempty"` // Interval corresponds to the JSON schema field "interval". Interval *int `mapstructure:"interval,omitempty"` }
type SamplerParentBased ¶
type SamplerParentBased struct { // LocalParentNotSampled corresponds to the JSON schema field // "local_parent_not_sampled". LocalParentNotSampled *Sampler `mapstructure:"local_parent_not_sampled,omitempty"` // LocalParentSampled corresponds to the JSON schema field "local_parent_sampled". LocalParentSampled *Sampler `mapstructure:"local_parent_sampled,omitempty"` // RemoteParentNotSampled corresponds to the JSON schema field // "remote_parent_not_sampled". RemoteParentNotSampled *Sampler `mapstructure:"remote_parent_not_sampled,omitempty"` // RemoteParentSampled corresponds to the JSON schema field // "remote_parent_sampled". RemoteParentSampled *Sampler `mapstructure:"remote_parent_sampled,omitempty"` // Root corresponds to the JSON schema field "root". Root *Sampler `mapstructure:"root,omitempty"` }
type SamplerTraceIDRatioBased ¶
type SamplerTraceIDRatioBased struct { // Ratio corresponds to the JSON schema field "ratio". Ratio *float64 `mapstructure:"ratio,omitempty"` }
type SimpleLogRecordProcessor ¶
type SimpleLogRecordProcessor struct { // Exporter corresponds to the JSON schema field "exporter". Exporter LogRecordExporter `mapstructure:"exporter"` }
func (*SimpleLogRecordProcessor) UnmarshalJSON ¶
func (j *SimpleLogRecordProcessor) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type SimpleSpanProcessor ¶
type SimpleSpanProcessor struct { // Exporter corresponds to the JSON schema field "exporter". Exporter SpanExporter `mapstructure:"exporter"` }
func (*SimpleSpanProcessor) UnmarshalJSON ¶
func (j *SimpleSpanProcessor) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type SpanExporter ¶
type SpanExporter struct { // Console corresponds to the JSON schema field "console". Console Console `mapstructure:"console,omitempty"` // OTLP corresponds to the JSON schema field "otlp". OTLP *OTLP `mapstructure:"otlp,omitempty"` // Zipkin corresponds to the JSON schema field "zipkin". Zipkin *Zipkin `mapstructure:"zipkin,omitempty"` }
type SpanLimits ¶
type SpanLimits struct { // AttributeCountLimit corresponds to the JSON schema field // "attribute_count_limit". AttributeCountLimit *int `mapstructure:"attribute_count_limit,omitempty"` // AttributeValueLengthLimit corresponds to the JSON schema field // "attribute_value_length_limit". AttributeValueLengthLimit *int `mapstructure:"attribute_value_length_limit,omitempty"` // EventAttributeCountLimit corresponds to the JSON schema field // "event_attribute_count_limit". EventAttributeCountLimit *int `mapstructure:"event_attribute_count_limit,omitempty"` // EventCountLimit corresponds to the JSON schema field "event_count_limit". EventCountLimit *int `mapstructure:"event_count_limit,omitempty"` // LinkAttributeCountLimit corresponds to the JSON schema field // "link_attribute_count_limit". LinkAttributeCountLimit *int `mapstructure:"link_attribute_count_limit,omitempty"` // LinkCountLimit corresponds to the JSON schema field "link_count_limit". LinkCountLimit *int `mapstructure:"link_count_limit,omitempty"` }
type SpanProcessor ¶
type SpanProcessor struct { // Batch corresponds to the JSON schema field "batch". Batch *BatchSpanProcessor `mapstructure:"batch,omitempty"` // Simple corresponds to the JSON schema field "simple". Simple *SimpleSpanProcessor `mapstructure:"simple,omitempty"` }
type TracerProvider ¶
type TracerProvider struct { // Limits corresponds to the JSON schema field "limits". Limits *SpanLimits `mapstructure:"limits,omitempty"` // Processors corresponds to the JSON schema field "processors". Processors []SpanProcessor `mapstructure:"processors,omitempty"` // Sampler corresponds to the JSON schema field "sampler". Sampler *Sampler `mapstructure:"sampler,omitempty"` }
type View ¶
type View struct { // Selector corresponds to the JSON schema field "selector". Selector *ViewSelector `mapstructure:"selector,omitempty"` // Stream corresponds to the JSON schema field "stream". Stream *ViewStream `mapstructure:"stream,omitempty"` }
type ViewSelector ¶
type ViewSelector struct { // InstrumentName corresponds to the JSON schema field "instrument_name". InstrumentName *string `mapstructure:"instrument_name,omitempty"` // InstrumentType corresponds to the JSON schema field "instrument_type". InstrumentType *ViewSelectorInstrumentType `mapstructure:"instrument_type,omitempty"` // MeterName corresponds to the JSON schema field "meter_name". MeterName *string `mapstructure:"meter_name,omitempty"` // MeterSchemaUrl corresponds to the JSON schema field "meter_schema_url". MeterSchemaUrl *string `mapstructure:"meter_schema_url,omitempty"` // MeterVersion corresponds to the JSON schema field "meter_version". MeterVersion *string `mapstructure:"meter_version,omitempty"` // Unit corresponds to the JSON schema field "unit". Unit *string `mapstructure:"unit,omitempty"` }
type ViewSelectorInstrumentType ¶
type ViewSelectorInstrumentType string
const ViewSelectorInstrumentTypeCounter ViewSelectorInstrumentType = "counter"
const ViewSelectorInstrumentTypeHistogram ViewSelectorInstrumentType = "histogram"
const ViewSelectorInstrumentTypeObservableCounter ViewSelectorInstrumentType = "observable_counter"
const ViewSelectorInstrumentTypeObservableGauge ViewSelectorInstrumentType = "observable_gauge"
const ViewSelectorInstrumentTypeObservableUpDownCounter ViewSelectorInstrumentType = "observable_up_down_counter"
const ViewSelectorInstrumentTypeUpDownCounter ViewSelectorInstrumentType = "up_down_counter"
func (*ViewSelectorInstrumentType) UnmarshalJSON ¶
func (j *ViewSelectorInstrumentType) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler.
type ViewStream ¶
type ViewStream struct { // Aggregation corresponds to the JSON schema field "aggregation". Aggregation *ViewStreamAggregation `mapstructure:"aggregation,omitempty"` // AttributeKeys corresponds to the JSON schema field "attribute_keys". AttributeKeys []string `mapstructure:"attribute_keys,omitempty"` // Description corresponds to the JSON schema field "description". Description *string `mapstructure:"description,omitempty"` // Name corresponds to the JSON schema field "name". Name *string `mapstructure:"name,omitempty"` }
type ViewStreamAggregation ¶
type ViewStreamAggregation struct { // Base2ExponentialBucketHistogram corresponds to the JSON schema field // "base2_exponential_bucket_histogram". Base2ExponentialBucketHistogram *ViewStreamAggregationBase2ExponentialBucketHistogram `mapstructure:"base2_exponential_bucket_histogram,omitempty"` // Default corresponds to the JSON schema field "default". Default ViewStreamAggregationDefault `mapstructure:"default,omitempty"` // Drop corresponds to the JSON schema field "drop". Drop ViewStreamAggregationDrop `mapstructure:"drop,omitempty"` // ExplicitBucketHistogram corresponds to the JSON schema field // "explicit_bucket_histogram". ExplicitBucketHistogram *ViewStreamAggregationExplicitBucketHistogram `mapstructure:"explicit_bucket_histogram,omitempty"` // LastValue corresponds to the JSON schema field "last_value". LastValue ViewStreamAggregationLastValue `mapstructure:"last_value,omitempty"` // Sum corresponds to the JSON schema field "sum". Sum ViewStreamAggregationSum `mapstructure:"sum,omitempty"` }
type ViewStreamAggregationBase2ExponentialBucketHistogram ¶
type ViewStreamAggregationBase2ExponentialBucketHistogram struct { // MaxScale corresponds to the JSON schema field "max_scale". MaxScale *int `mapstructure:"max_scale,omitempty"` // MaxSize corresponds to the JSON schema field "max_size". MaxSize *int `mapstructure:"max_size,omitempty"` // RecordMinMax corresponds to the JSON schema field "record_min_max". RecordMinMax *bool `mapstructure:"record_min_max,omitempty"` }
type ViewStreamAggregationDefault ¶
type ViewStreamAggregationDefault map[string]interface{}
type ViewStreamAggregationDrop ¶
type ViewStreamAggregationDrop map[string]interface{}
type ViewStreamAggregationExplicitBucketHistogram ¶
type ViewStreamAggregationExplicitBucketHistogram struct { // Boundaries corresponds to the JSON schema field "boundaries". Boundaries []float64 `mapstructure:"boundaries,omitempty"` // RecordMinMax corresponds to the JSON schema field "record_min_max". RecordMinMax *bool `mapstructure:"record_min_max,omitempty"` }
type ViewStreamAggregationLastValue ¶
type ViewStreamAggregationLastValue map[string]interface{}
type ViewStreamAggregationSum ¶
type ViewStreamAggregationSum map[string]interface{}
type Zipkin ¶
type Zipkin struct { // Endpoint corresponds to the JSON schema field "endpoint". Endpoint string `mapstructure:"endpoint"` // Timeout corresponds to the JSON schema field "timeout". Timeout *int `mapstructure:"timeout,omitempty"` }
func (*Zipkin) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler.