Files
virtual-kubelet/cmd/census_ocagent.go
Brian Goff 143d9f71cc Add ocagent exporter
ocagent allows users to send traces out of VK to a "standard"  external forwarder
(standard as in this is a format/protocol defined in the opencensus project).

This allows uers to implement metrics for whatever backend they want
without having to add it into VK directly.
2018-10-31 14:31:13 -07:00

38 lines
1.1 KiB
Go

// +build !no_ocagent_exporter
package cmd
import (
"os"
"contrib.go.opencensus.io/exporter/ocagent"
"github.com/cpuguy83/strongerrors"
"github.com/pkg/errors"
"go.opencensus.io/trace"
)
func init() {
RegisterTracingExporter("ocagent", NewOCAgentExporter)
}
// NewOCAgentExporter creates a new opencensus tracing exporter using the opencensus agent forwarder.
func NewOCAgentExporter(opts TracingExporterOptions) (trace.Exporter, error) {
agentOpts := append([]ocagent.ExporterOption{}, ocagent.WithServiceName(opts.ServiceName))
if endpoint := os.Getenv("OCAGENT_ENDPOINT"); endpoint != "" {
agentOpts = append(agentOpts, ocagent.WithAddress(endpoint))
} else {
return nil, strongerrors.InvalidArgument(errors.New("must set endpoint address in OCAGENT_ENDPOINT"))
}
switch os.Getenv("OCAGENT_INSECURE") {
case "0", "no", "n", "off", "":
case "1", "yes", "y", "on":
agentOpts = append(agentOpts, ocagent.WithInsecure())
default:
return nil, strongerrors.InvalidArgument(errors.New("invalid value for OCAGENT_INSECURE"))
}
return ocagent.NewExporter(agentOpts...)
}