Documentation ¶
Overview ¶
Deprecated: This package was split into exporters/stdout/stdouttrace and exporters/stdout/stdoutmetric.
Example ¶
package main import ( "context" "log" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/exporters/stdout" // nolint:staticcheck // stdout is deprecated "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/metric/global" "go.opentelemetry.io/otel/trace" ) const ( instrumentationName = "github.com/instrumentron" instrumentationVersion = "v0.1.0" ) var ( tracer = otel.GetTracerProvider().Tracer( instrumentationName, trace.WithInstrumentationVersion(instrumentationVersion), ) meter = global.GetMeterProvider().Meter( instrumentationName, metric.WithInstrumentationVersion(instrumentationVersion), ) loopCounter = metric.Must(meter).NewInt64Counter("function.loops") paramValue = metric.Must(meter).NewInt64ValueRecorder("function.param") nameKey = attribute.Key("function.name") ) func add(ctx context.Context, x, y int64) int64 { nameKV := nameKey.String("add") var span trace.Span ctx, span = tracer.Start(ctx, "Addition") defer span.End() loopCounter.Add(ctx, 1, nameKV) paramValue.Record(ctx, x, nameKV) paramValue.Record(ctx, y, nameKV) return x + y } func multiply(ctx context.Context, x, y int64) int64 { nameKV := nameKey.String("multiply") var span trace.Span ctx, span = tracer.Start(ctx, "Multiplication") defer span.End() loopCounter.Add(ctx, 1, nameKV) paramValue.Record(ctx, x, nameKV) paramValue.Record(ctx, y, nameKV) return x * y } func main() { exportOpts := []stdout.Option{ stdout.WithPrettyPrint(), } // Registers both a trace and meter Provider globally. tracerProvider, pusher, err := stdout.InstallNewPipeline(exportOpts, nil) if err != nil { log.Fatal("Could not initialize stdout exporter:", err) } ctx := context.Background() log.Println("the answer is", add(ctx, multiply(ctx, multiply(ctx, 2, 2), 10), 2)) if err := pusher.Stop(ctx); err != nil { log.Fatal("Could not stop stdout exporter:", err) } if err := tracerProvider.Shutdown(ctx); err != nil { log.Fatal("Could not stop stdout tracer:", err) } }
Output:
Index ¶
- func InstallNewPipeline(exportOpts []Option, pushOpts []controller.Option) (*sdktrace.TracerProvider, *controller.Controller, error)
- func NewExportPipeline(exportOpts []Option, pushOpts []controller.Option) (*sdktrace.TracerProvider, *controller.Controller, error)
- type Config
- type Exporter
- func (e *Exporter) Export(_ context.Context, checkpointSet exportmetric.CheckpointSet) error
- func (e *Exporter) ExportKindFor(desc *metric.Descriptor, kind aggregation.Kind) exportmetric.ExportKind
- func (e *Exporter) ExportSpans(ctx context.Context, ss []*trace.SpanSnapshot) error
- func (e *Exporter) Shutdown(ctx context.Context) error
- type Option
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InstallNewPipeline ¶
func InstallNewPipeline(exportOpts []Option, pushOpts []controller.Option) (*sdktrace.TracerProvider, *controller.Controller, error)
InstallNewPipeline creates a complete export pipelines with defaults and registers it globally. It is the responsibility of the caller to stop the returned tracer provider and push Controller.
Typically this is called as:
pipeline, err := stdout.InstallNewPipeline(stdout.Config{...}) if err != nil { ... } defer pipeline.Stop() ... Done
func NewExportPipeline ¶
func NewExportPipeline(exportOpts []Option, pushOpts []controller.Option) (*sdktrace.TracerProvider, *controller.Controller, error)
NewExportPipeline creates a complete export pipeline with the default selectors, processors, and trace registration. It is the responsibility of the caller to stop the returned tracer provider and push Controller.
Types ¶
type Config ¶
type Config struct { // Writer is the destination. If not set, os.Stdout is used. Writer io.Writer // PrettyPrint will encode the output into readable JSON. Default is // false. PrettyPrint bool // Timestamps specifies if timestamps should be pritted. Default is // true. Timestamps bool // LabelEncoder encodes the labels. LabelEncoder attribute.Encoder // DisableTraceExport prevents any export of trace telemetry. DisableTraceExport bool // DisableMetricExport prevents any export of metric telemetry. DisableMetricExport bool }
Config contains options for the STDOUT exporter.
type Exporter ¶
type Exporter struct {
// contains filtered or unexported fields
}
func NewExporter ¶
NewExporter creates an Exporter with the passed options.
func (*Exporter) Export ¶
func (e *Exporter) Export(_ context.Context, checkpointSet exportmetric.CheckpointSet) error
func (*Exporter) ExportKindFor ¶
func (e *Exporter) ExportKindFor(desc *metric.Descriptor, kind aggregation.Kind) exportmetric.ExportKind
func (*Exporter) ExportSpans ¶
func (e *Exporter) ExportSpans(ctx context.Context, ss []*trace.SpanSnapshot) error
ExportSpans writes SpanSnapshots in json format to stdout.
type Option ¶
type Option interface { // Apply option value to Config. Apply(*Config) // contains filtered or unexported methods }
Option sets the value of an option for a Config.
func WithLabelEncoder ¶
WithLabelEncoder sets the label encoder used in export.
func WithPrettyPrint ¶
func WithPrettyPrint() Option
WithPrettyPrint sets the export stream format to use JSON.
func WithWriter ¶
WithWriter sets the export stream destination.
func WithoutMetricExport ¶
func WithoutMetricExport() Option
WithoutMetricExport disables all metric exporting.
func WithoutTimestamps ¶
func WithoutTimestamps() Option
WithoutTimestamps sets the export stream to not include timestamps.
func WithoutTraceExport ¶
func WithoutTraceExport() Option
WithoutTraceExport disables all trace exporting.