mirror of https://github.com/grpc/grpc-go.git
Merge c6168a0528
into 57400b4e69
This commit is contained in:
commit
85efd39f18
|
@ -1,7 +1,9 @@
|
|||
# OpenTelemetry
|
||||
|
||||
This example shows how to configure OpenTelemetry on a client and server, and
|
||||
shows what type of telemetry data it can produce for certain RPCs.
|
||||
shows what type of telemetry data it can produce for certain RPCs,
|
||||
and demonstrates how to enable experimental gRPC metrics, which are disabled
|
||||
by default and must be explicitly configured on the client and/or server.
|
||||
|
||||
## Try it
|
||||
|
||||
|
|
|
@ -62,8 +62,17 @@ func main() {
|
|||
traceProvider := sdktrace.NewTracerProvider(sdktrace.WithBatcher(traceExporter), sdktrace.WithResource(otelresource.NewWithAttributes(semconv.SchemaURL, semconv.ServiceName("grpc-client"))))
|
||||
// Configure W3C Trace Context Propagator for traces
|
||||
textMapPropagator := otelpropagation.TraceContext{}
|
||||
// These are example experimental gRPC metrics, which are disabled by default
|
||||
// and must be explicitly enabled. For the full, up-to-date list of metrics,
|
||||
// see: https://grpc.io/docs/guides/opentelemetry-metrics/#instruments
|
||||
do := opentelemetry.DialOption(opentelemetry.Options{
|
||||
MetricsOptions: opentelemetry.MetricsOptions{MeterProvider: meterProvider},
|
||||
MetricsOptions: opentelemetry.MetricsOptions{
|
||||
MeterProvider: meterProvider,
|
||||
Metrics: opentelemetry.DefaultMetrics().Add(
|
||||
"grpc.lb.wrr.rr_fallback",
|
||||
"grpc.xds_client.connected",
|
||||
),
|
||||
},
|
||||
TraceOptions: oteltracing.TraceOptions{TracerProvider: traceProvider, TextMapPropagator: textMapPropagator},
|
||||
})
|
||||
|
||||
|
|
|
@ -70,8 +70,17 @@ func main() {
|
|||
traceProvider := sdktrace.NewTracerProvider(sdktrace.WithBatcher(traceExporter), sdktrace.WithResource(otelresource.NewWithAttributes(semconv.SchemaURL, semconv.ServiceName("grpc-server"))))
|
||||
// Configure W3C Trace Context Propagator for traces
|
||||
textMapPropagator := otelpropagation.TraceContext{}
|
||||
// These are example experimental gRPC metrics, which are disabled by default
|
||||
// and must be explicitly enabled. For the full, up-to-date list of metrics,
|
||||
// see: https://grpc.io/docs/guides/opentelemetry-metrics/#instruments
|
||||
so := opentelemetry.ServerOption(opentelemetry.Options{
|
||||
MetricsOptions: opentelemetry.MetricsOptions{MeterProvider: meterProvider},
|
||||
MetricsOptions: opentelemetry.MetricsOptions{
|
||||
MeterProvider: meterProvider,
|
||||
Metrics: opentelemetry.DefaultMetrics().Add(
|
||||
"grpc.lb.wrr.rr_fallback",
|
||||
"grpc.xds_client.connected",
|
||||
),
|
||||
},
|
||||
TraceOptions: oteltracing.TraceOptions{TracerProvider: traceProvider, TextMapPropagator: textMapPropagator}})
|
||||
|
||||
go http.ListenAndServe(*prometheusEndpoint, promhttp.Handler())
|
||||
|
|
|
@ -25,7 +25,7 @@ import (
|
|||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
)
|
||||
|
||||
func Example_dialOption() {
|
||||
func ExampleDialOption_basic() {
|
||||
// This is setting default bounds for a view. Setting these bounds through
|
||||
// meter provider from SDK is recommended, as API calls in this module
|
||||
// provide default bounds, but these calls are not guaranteed to be stable
|
||||
|
@ -64,7 +64,7 @@ func Example_dialOption() {
|
|||
defer cc.Close()
|
||||
}
|
||||
|
||||
func Example_serverOption() {
|
||||
func ExampleServerOption_methodFilter() {
|
||||
reader := metric.NewManualReader()
|
||||
provider := metric.NewMeterProvider(metric.WithReader(reader))
|
||||
opts := opentelemetry.Options{
|
||||
|
@ -128,3 +128,27 @@ func ExampleMetrics_enableSome() {
|
|||
}
|
||||
defer cc.Close()
|
||||
}
|
||||
|
||||
func ExampleOptions_addExperimentalMetrics() {
|
||||
opts := opentelemetry.Options{
|
||||
MetricsOptions: opentelemetry.MetricsOptions{
|
||||
Metrics: opentelemetry.DefaultMetrics().Add(
|
||||
"grpc.lb.wrr.rr_fallback",
|
||||
"grpc.lb.wrr.endpoint_weight_not_yet_usable",
|
||||
"grpc.lb.wrr.endpoint_weight_stale",
|
||||
"grpc.lb.wrr.endpoint_weights",
|
||||
"grpc.xds_client.connected",
|
||||
"grpc.xds_client.server_failure",
|
||||
"grpc.xds_client.resource_updates_valid",
|
||||
"grpc.xds_client.resource_updates_invalid",
|
||||
"grpc.xds_client.resources",
|
||||
),
|
||||
},
|
||||
}
|
||||
do := opentelemetry.DialOption(opts)
|
||||
cc, err := grpc.NewClient("<target string>", do, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
||||
if err != nil {
|
||||
// Handle error.
|
||||
}
|
||||
defer cc.Close()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue