Documentation ¶
Overview ¶
Example (EndToEnd) ¶
package main import ( "context" "log" "time" "contrib.go.opencensus.io/exporter/ocagent" "go.opencensus.io/trace" "go.uber.org/zap" "github.com/open-telemetry/opentelemetry-collector/component" "github.com/open-telemetry/opentelemetry-collector/config/configmodels" "github.com/open-telemetry/opentelemetry-collector/exporter/loggingexporter" "github.com/open-telemetry/opentelemetry-collector/receiver/opencensusreceiver" ) func main() { // This is what the cmd/ocagent code would look like this. // A trace receiver as per the trace receiver // configs that have been parsed. lte, err := loggingexporter.NewTraceExporter(&configmodels.ExporterSettings{}, "debug", zap.NewNop()) if err != nil { log.Fatalf("Failed to create logging exporter: %v", err) } tr, err := opencensusreceiver.New("opencensus", "tcp", "localhost:55678", lte, nil) if err != nil { log.Fatalf("Failed to create trace receiver: %v", err) } // The agent will combine all trace receivers like this. trl := []component.TraceReceiver{tr} // Once we have the span receiver which will connect to the // various exporter pipeline i.e. *tracepb.Span->OpenCensus.SpanData for _, tr := range trl { if err := tr.Start(nil); err != nil { log.Fatalf("Failed to start trace receiver: %v", err) } } // Before exiting, stop all the trace receivers defer func() { for _, tr := range trl { _ = tr.Shutdown() } }() log.Println("Done starting the trace receiver") // We are done with the agent-core // Now this code would exist in the client application e.g. client code. // Create the agent exporter oce, err := ocagent.NewExporter(ocagent.WithInsecure()) if err != nil { log.Fatalf("Failed to create ocagent exporter: %v", err) } defer oce.Stop() // Register it as a trace exporter trace.RegisterExporter(oce) // For demo purposes we are always sampling trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()}) log.Println("Starting loop") ctx, span := trace.StartSpan(context.Background(), "ClientLibrarySpan") for i := 0; i < 10; i++ { _, span := trace.StartSpan(ctx, "ChildSpan") span.Annotatef([]trace.Attribute{ trace.StringAttribute("type", "Child"), trace.Int64Attribute("i", int64(i)), }, "This is an annotation") <-time.After(100 * time.Millisecond) span.End() oce.Flush() } span.End() <-time.After(400 * time.Millisecond) oce.Flush() <-time.After(5 * time.Second) }
Output:
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SecureReceiverSettings ¶
type SecureReceiverSettings struct { configmodels.ReceiverSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct // Configures the receiver to use TLS. // The default value is nil, which will cause the receiver to not use TLS. TLSCredentials *TLSCredentials `mapstructure:"tls_credentials, omitempty"` }
SecureReceiverSettings defines common settings for receivers that use Transport Layer Security (TLS)
type TLSCredentials ¶
type TLSCredentials struct { // CertFile is the file path containing the TLS certificate. CertFile string `mapstructure:"cert_file"` // KeyFile is the file path containing the TLS key. KeyFile string `mapstructure:"key_file"` }
TLSCredentials contains path information for a certificate and key to be used for TLS
func (*TLSCredentials) ToGrpcServerOption ¶
func (tlsCreds *TLSCredentials) ToGrpcServerOption() (opt grpc.ServerOption, err error)
ToGrpcServerOption creates a gRPC ServerOption from TLSCredentials. If TLSCredentials is nil, returns empty option.
Directories ¶
Path | Synopsis |
---|---|
ocmetrics
Package ocmetrics is the logic for receiving OpenCensus metrics proto from already instrumented applications and then passing them onto a metricsink instance.
|
Package ocmetrics is the logic for receiving OpenCensus metrics proto from already instrumented applications and then passing them onto a metricsink instance. |
octrace
Package octrace is the logic for receiving OpenCensus trace protobuf defined spans from already instrumented applications and then passing them onto a TraceReceiverSink instance.
|
Package octrace is the logic for receiving OpenCensus trace protobuf defined spans from already instrumented applications and then passing them onto a TraceReceiverSink instance. |
Package prometheusreceiver has the logic for scraping Prometheus metrics from already instrumented applications and then passing them onto a metricsink instance.
|
Package prometheusreceiver has the logic for scraping Prometheus metrics from already instrumented applications and then passing them onto a metricsink instance. |
Package vmmetricsreceiver has the logic for scraping VM metrics and then passing them onto a metric consumer instance.
|
Package vmmetricsreceiver has the logic for scraping VM metrics and then passing them onto a metric consumer instance. |
Click to show internal directories.
Click to hide internal directories.