mirror of
https://github.com/hanzo-fi/go-libs.git
synced 2026-10-30 20:53:44 +00:00
59 lines
2.3 KiB
Go
59 lines
2.3 KiB
Go
package traces
|
|
|
|
import (
|
|
flag "github.com/spf13/pflag"
|
|
|
|
"github.com/hanzo-fi/go-libs/v5/pkg/observe"
|
|
)
|
|
|
|
const (
|
|
OtelTracesBatchFlag = "otel-traces-batch"
|
|
OtelTracesExporterFlag = "otel-traces-exporter"
|
|
OtelTracesExporterJaegerEndpointFlag = "otel-traces-exporter-jaeger-endpoint"
|
|
OtelTracesExporterJaegerUserFlag = "otel-traces-exporter-jaeger-user"
|
|
OtelTracesExporterJaegerPasswordFlag = "otel-traces-exporter-jaeger-password"
|
|
OtelTracesExporterOTLPModeFlag = "otel-traces-exporter-otlp-mode"
|
|
OtelTracesExporterOTLPEndpointFlag = "otel-traces-exporter-otlp-endpoint"
|
|
OtelTracesExporterOTLPInsecureFlag = "otel-traces-exporter-otlp-insecure"
|
|
)
|
|
|
|
func AddFlags(flags *flag.FlagSet) {
|
|
observe.AddFlags(flags)
|
|
|
|
flags.Bool(OtelTracesBatchFlag, false, "Use OpenTelemetry batching")
|
|
flags.String(OtelTracesExporterFlag, "", "OpenTelemetry traces exporter")
|
|
flags.String(OtelTracesExporterJaegerEndpointFlag, "", "OpenTelemetry traces Jaeger exporter endpoint")
|
|
flags.String(OtelTracesExporterJaegerUserFlag, "", "OpenTelemetry traces Jaeger exporter user")
|
|
flags.String(OtelTracesExporterJaegerPasswordFlag, "", "OpenTelemetry traces Jaeger exporter password")
|
|
flags.String(OtelTracesExporterOTLPModeFlag, "grpc", "OpenTelemetry traces OTLP exporter mode (grpc|http)")
|
|
flags.String(OtelTracesExporterOTLPEndpointFlag, "", "OpenTelemetry traces grpc endpoint")
|
|
flags.Bool(OtelTracesExporterOTLPInsecureFlag, false, "OpenTelemetry traces grpc insecure")
|
|
}
|
|
|
|
func ConfigFromFlags(flags *flag.FlagSet) ModuleConfig {
|
|
batch, _ := flags.GetBool(OtelTracesBatchFlag)
|
|
exporter, _ := flags.GetString(OtelTracesExporterFlag)
|
|
serviceName, _ := flags.GetString(observe.OtelServiceNameFlag)
|
|
resourceAttributes, _ := flags.GetStringSlice(observe.OtelResourceAttributesFlag)
|
|
|
|
cfg := ModuleConfig{
|
|
Batch: batch,
|
|
Exporter: exporter,
|
|
ServiceName: serviceName,
|
|
ResourceAttributes: resourceAttributes,
|
|
}
|
|
|
|
if exporter == OTLPExporter {
|
|
mode, _ := flags.GetString(OtelTracesExporterOTLPModeFlag)
|
|
endpoint, _ := flags.GetString(OtelTracesExporterOTLPEndpointFlag)
|
|
insecure, _ := flags.GetBool(OtelTracesExporterOTLPInsecureFlag)
|
|
cfg.OTLPConfig = &OTLPConfig{
|
|
Mode: mode,
|
|
Endpoint: endpoint,
|
|
Insecure: insecure,
|
|
}
|
|
}
|
|
|
|
return cfg
|
|
}
|