You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-07-17 01:12:45 +02:00
example/dice: Do not use semconv (#4849)
* example/dice: Do not use semconv * Update docs * Remove resource code and use defaults
This commit is contained in:
@ -12,5 +12,9 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Dice is the "Roll the dice" getting started example application.
|
||||
// Dice is the "Roll the dice" application.
|
||||
//
|
||||
// [Getting Started] uses this example to demonstrate OpenTelemetry Go.
|
||||
//
|
||||
// [Getting Started]: https://opentelemetry.io/docs/languages/net/automatic/getting-started/
|
||||
package main
|
||||
|
@ -39,9 +39,7 @@ func run() (err error) {
|
||||
defer stop()
|
||||
|
||||
// Set up OpenTelemetry.
|
||||
serviceName := "dice"
|
||||
serviceVersion := "0.1.0"
|
||||
otelShutdown, err := setupOTelSDK(ctx, serviceName, serviceVersion)
|
||||
otelShutdown, err := setupOTelSDK(ctx)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
@ -24,14 +24,12 @@ import (
|
||||
"go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
|
||||
"go.opentelemetry.io/otel/propagation"
|
||||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/resource"
|
||||
"go.opentelemetry.io/otel/sdk/trace"
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.24.0"
|
||||
)
|
||||
|
||||
// setupOTelSDK bootstraps the OpenTelemetry pipeline.
|
||||
// If it does not return an error, make sure to call shutdown for proper cleanup.
|
||||
func setupOTelSDK(ctx context.Context, serviceName, serviceVersion string) (shutdown func(context.Context) error, err error) {
|
||||
func setupOTelSDK(ctx context.Context) (shutdown func(context.Context) error, err error) {
|
||||
var shutdownFuncs []func(context.Context) error
|
||||
|
||||
// shutdown calls cleanup functions registered via shutdownFuncs.
|
||||
@ -51,19 +49,12 @@ func setupOTelSDK(ctx context.Context, serviceName, serviceVersion string) (shut
|
||||
err = errors.Join(inErr, shutdown(ctx))
|
||||
}
|
||||
|
||||
// Set up resource.
|
||||
res, err := newResource(serviceName, serviceVersion)
|
||||
if err != nil {
|
||||
handleErr(err)
|
||||
return
|
||||
}
|
||||
|
||||
// Set up propagator.
|
||||
prop := newPropagator()
|
||||
otel.SetTextMapPropagator(prop)
|
||||
|
||||
// Set up trace provider.
|
||||
tracerProvider, err := newTraceProvider(res)
|
||||
tracerProvider, err := newTraceProvider()
|
||||
if err != nil {
|
||||
handleErr(err)
|
||||
return
|
||||
@ -72,7 +63,7 @@ func setupOTelSDK(ctx context.Context, serviceName, serviceVersion string) (shut
|
||||
otel.SetTracerProvider(tracerProvider)
|
||||
|
||||
// Set up meter provider.
|
||||
meterProvider, err := newMeterProvider(res)
|
||||
meterProvider, err := newMeterProvider()
|
||||
if err != nil {
|
||||
handleErr(err)
|
||||
return
|
||||
@ -83,14 +74,6 @@ func setupOTelSDK(ctx context.Context, serviceName, serviceVersion string) (shut
|
||||
return
|
||||
}
|
||||
|
||||
func newResource(serviceName, serviceVersion string) (*resource.Resource, error) {
|
||||
return resource.Merge(resource.Default(),
|
||||
resource.NewWithAttributes(semconv.SchemaURL,
|
||||
semconv.ServiceName(serviceName),
|
||||
semconv.ServiceVersion(serviceVersion),
|
||||
))
|
||||
}
|
||||
|
||||
func newPropagator() propagation.TextMapPropagator {
|
||||
return propagation.NewCompositeTextMapPropagator(
|
||||
propagation.TraceContext{},
|
||||
@ -98,7 +81,7 @@ func newPropagator() propagation.TextMapPropagator {
|
||||
)
|
||||
}
|
||||
|
||||
func newTraceProvider(res *resource.Resource) (*trace.TracerProvider, error) {
|
||||
func newTraceProvider() (*trace.TracerProvider, error) {
|
||||
traceExporter, err := stdouttrace.New(
|
||||
stdouttrace.WithPrettyPrint())
|
||||
if err != nil {
|
||||
@ -109,19 +92,17 @@ func newTraceProvider(res *resource.Resource) (*trace.TracerProvider, error) {
|
||||
trace.WithBatcher(traceExporter,
|
||||
// Default is 5s. Set to 1s for demonstrative purposes.
|
||||
trace.WithBatchTimeout(time.Second)),
|
||||
trace.WithResource(res),
|
||||
)
|
||||
return traceProvider, nil
|
||||
}
|
||||
|
||||
func newMeterProvider(res *resource.Resource) (*metric.MeterProvider, error) {
|
||||
func newMeterProvider() (*metric.MeterProvider, error) {
|
||||
metricExporter, err := stdoutmetric.New()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
meterProvider := metric.NewMeterProvider(
|
||||
metric.WithResource(res),
|
||||
metric.WithReader(metric.NewPeriodicReader(metricExporter,
|
||||
// Default is 1m. Set to 3s for demonstrative purposes.
|
||||
metric.WithInterval(3*time.Second))),
|
||||
|
Reference in New Issue
Block a user