Skip to content

Commit

Permalink
example/dice: Do not use semconv (#4849)
Browse files Browse the repository at this point in the history
* example/dice: Do not use semconv

* Update docs

* Remove resource code and use defaults
  • Loading branch information
pellared committed Jan 25, 2024
1 parent c573785 commit 6f96e67
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 28 deletions.
6 changes: 5 additions & 1 deletion example/dice/doc.go
Expand Up @@ -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
4 changes: 1 addition & 3 deletions example/dice/main.go
Expand Up @@ -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
}
Expand Down
29 changes: 5 additions & 24 deletions example/dice/otel.go
Expand Up @@ -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.
Expand All @@ -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
Expand All @@ -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
Expand All @@ -83,22 +74,14 @@ 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{},
propagation.Baggage{},
)
}

func newTraceProvider(res *resource.Resource) (*trace.TracerProvider, error) {
func newTraceProvider() (*trace.TracerProvider, error) {
traceExporter, err := stdouttrace.New(
stdouttrace.WithPrettyPrint())
if err != nil {
Expand All @@ -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))),
Expand Down

0 comments on commit 6f96e67

Please sign in to comment.