You've already forked opentelemetry-go
							
							
				mirror of
				https://github.com/open-telemetry/opentelemetry-go.git
				synced 2025-10-31 00:07:40 +02:00 
			
		
		
		
	Remove example/fib (#4723)
This commit is contained in:
		
							
								
								
									
										9
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							| @@ -73,15 +73,6 @@ updates: | ||||
|     schedule: | ||||
|       interval: weekly | ||||
|       day: sunday | ||||
|   - package-ecosystem: gomod | ||||
|     directory: /example/fib | ||||
|     labels: | ||||
|       - dependencies | ||||
|       - go | ||||
|       - Skip Changelog | ||||
|     schedule: | ||||
|       interval: weekly | ||||
|       day: sunday | ||||
|   - package-ecosystem: gomod | ||||
|     directory: /example/namedtracer | ||||
|     labels: | ||||
|   | ||||
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -14,13 +14,9 @@ go.work.sum | ||||
| gen/ | ||||
|  | ||||
| /example/dice/dice | ||||
| /example/fib/fib | ||||
| /example/fib/traces.txt | ||||
| /example/jaeger/jaeger | ||||
| /example/namedtracer/namedtracer | ||||
| /example/otel-collector/otel-collector | ||||
| /example/opencensus/opencensus | ||||
| /example/passthrough/passthrough | ||||
| /example/prometheus/prometheus | ||||
| /example/view/view | ||||
| /example/zipkin/zipkin | ||||
|   | ||||
| @@ -13,6 +13,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm | ||||
| - Remove the deprecated `go.opentelemetry.io/otel/bridge/opencensus.NewTracer`. (#4706) | ||||
| - Remove the deprecated `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` module. (#4707) | ||||
| - Remove the deprecated `go.opentelemetry.io/otel/example/view` module. (#4708) | ||||
| - Remove the deprecated `go.opentelemetry.io/otel/example/fib` module. (#4723) | ||||
|  | ||||
| ### Fixed | ||||
|  | ||||
|   | ||||
| @@ -1,104 +0,0 @@ | ||||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"log" | ||||
| 	"strconv" | ||||
|  | ||||
| 	"go.opentelemetry.io/otel" | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| 	"go.opentelemetry.io/otel/codes" | ||||
| 	"go.opentelemetry.io/otel/trace" | ||||
| ) | ||||
|  | ||||
| // name is the Tracer name used to identify this instrumentation library. | ||||
| const name = "fib" | ||||
|  | ||||
| // App is an Fibonacci computation application. | ||||
| type App struct { | ||||
| 	r io.Reader | ||||
| 	l *log.Logger | ||||
| } | ||||
|  | ||||
| // NewApp returns a new App. | ||||
| func NewApp(r io.Reader, l *log.Logger) *App { | ||||
| 	return &App{r: r, l: l} | ||||
| } | ||||
|  | ||||
| // Run starts polling users for Fibonacci number requests and writes results. | ||||
| func (a *App) Run(ctx context.Context) error { | ||||
| 	for { | ||||
| 		// Each execution of the run loop, we should get a new "root" span and context. | ||||
| 		newCtx, span := otel.Tracer(name).Start(ctx, "Run") | ||||
|  | ||||
| 		n, err := a.Poll(newCtx) | ||||
| 		if err != nil { | ||||
| 			span.End() | ||||
| 			return err | ||||
| 		} | ||||
|  | ||||
| 		a.Write(newCtx, n) | ||||
| 		span.End() | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Poll asks a user for input and returns the request. | ||||
| func (a *App) Poll(ctx context.Context) (uint, error) { | ||||
| 	_, span := otel.Tracer(name).Start(ctx, "Poll") | ||||
| 	defer span.End() | ||||
|  | ||||
| 	a.l.Print("What Fibonacci number would you like to know: ") | ||||
|  | ||||
| 	var n uint | ||||
| 	_, err := fmt.Fscanf(a.r, "%d\n", &n) | ||||
| 	if err != nil { | ||||
| 		span.RecordError(err) | ||||
| 		span.SetStatus(codes.Error, err.Error()) | ||||
| 		return 0, err | ||||
| 	} | ||||
|  | ||||
| 	// Store n as a string to not overflow an int64. | ||||
| 	nStr := strconv.FormatUint(uint64(n), 10) | ||||
| 	span.SetAttributes(attribute.String("request.n", nStr)) | ||||
|  | ||||
| 	return n, nil | ||||
| } | ||||
|  | ||||
| // Write writes the n-th Fibonacci number back to the user. | ||||
| func (a *App) Write(ctx context.Context, n uint) { | ||||
| 	var span trace.Span | ||||
| 	ctx, span = otel.Tracer(name).Start(ctx, "Write") | ||||
| 	defer span.End() | ||||
|  | ||||
| 	f, err := func(ctx context.Context) (uint64, error) { | ||||
| 		_, span := otel.Tracer(name).Start(ctx, "Fibonacci") | ||||
| 		defer span.End() | ||||
| 		f, err := Fibonacci(n) | ||||
| 		if err != nil { | ||||
| 			span.RecordError(err) | ||||
| 			span.SetStatus(codes.Error, err.Error()) | ||||
| 		} | ||||
| 		return f, err | ||||
| 	}(ctx) | ||||
| 	if err != nil { | ||||
| 		a.l.Printf("Fibonacci(%d): %v\n", n, err) | ||||
| 	} else { | ||||
| 		a.l.Printf("Fibonacci(%d) = %d\n", n, f) | ||||
| 	} | ||||
| } | ||||
| @@ -1,18 +0,0 @@ | ||||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| // Fib is the "Fibonacci" old getting started example application. | ||||
| // | ||||
| // Deprecated: See [go.opentelemetry.io/otel/example/dice] instead. | ||||
| package main | ||||
| @@ -1,35 +0,0 @@ | ||||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| package main | ||||
|  | ||||
| import "fmt" | ||||
|  | ||||
| // Fibonacci returns the n-th fibonacci number. | ||||
| func Fibonacci(n uint) (uint64, error) { | ||||
| 	if n <= 1 { | ||||
| 		return uint64(n), nil | ||||
| 	} | ||||
|  | ||||
| 	if n > 93 { | ||||
| 		return 0, fmt.Errorf("unsupported fibonacci number %d: too large", n) | ||||
| 	} | ||||
|  | ||||
| 	var n2, n1 uint64 = 0, 1 | ||||
| 	for i := uint(2); i < n; i++ { | ||||
| 		n2, n1 = n1, n1+n2 | ||||
| 	} | ||||
|  | ||||
| 	return n2 + n1, nil | ||||
| } | ||||
| @@ -1,28 +0,0 @@ | ||||
| // Deprecated: See go.opentelemetry.io/otel/example/dice instead. | ||||
| module go.opentelemetry.io/otel/example/fib | ||||
|  | ||||
| go 1.20 | ||||
|  | ||||
| require ( | ||||
| 	go.opentelemetry.io/otel v1.20.0 | ||||
| 	go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.20.0 | ||||
| 	go.opentelemetry.io/otel/sdk v1.20.0 | ||||
| 	go.opentelemetry.io/otel/trace v1.20.0 | ||||
| ) | ||||
|  | ||||
| require ( | ||||
| 	github.com/go-logr/logr v1.3.0 // indirect | ||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v1.20.0 // indirect | ||||
| 	golang.org/x/sys v0.14.0 // indirect | ||||
| ) | ||||
|  | ||||
| replace go.opentelemetry.io/otel => ../.. | ||||
|  | ||||
| replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../../exporters/stdout/stdouttrace | ||||
|  | ||||
| replace go.opentelemetry.io/otel/sdk => ../../sdk | ||||
|  | ||||
| replace go.opentelemetry.io/otel/trace => ../../trace | ||||
|  | ||||
| replace go.opentelemetry.io/otel/metric => ../../metric | ||||
| @@ -1,12 +0,0 @@ | ||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||
| github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||
| github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= | ||||
| github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= | ||||
| github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= | ||||
| github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= | ||||
| github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | ||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | ||||
| golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= | ||||
| golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||
| @@ -1,101 +0,0 @@ | ||||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"io" | ||||
| 	"log" | ||||
| 	"os" | ||||
| 	"os/signal" | ||||
|  | ||||
| 	"go.opentelemetry.io/otel" | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| 	"go.opentelemetry.io/otel/exporters/stdout/stdouttrace" | ||||
| 	"go.opentelemetry.io/otel/sdk/resource" | ||||
| 	"go.opentelemetry.io/otel/sdk/trace" | ||||
| 	semconv "go.opentelemetry.io/otel/semconv/v1.21.0" | ||||
| ) | ||||
|  | ||||
| // newExporter returns a console exporter. | ||||
| func newExporter(w io.Writer) (trace.SpanExporter, error) { | ||||
| 	return stdouttrace.New( | ||||
| 		stdouttrace.WithWriter(w), | ||||
| 		// Use human readable output. | ||||
| 		stdouttrace.WithPrettyPrint(), | ||||
| 		// Do not print timestamps for the demo. | ||||
| 		stdouttrace.WithoutTimestamps(), | ||||
| 	) | ||||
| } | ||||
|  | ||||
| // newResource returns a resource describing this application. | ||||
| func newResource() *resource.Resource { | ||||
| 	r, _ := resource.Merge( | ||||
| 		resource.Default(), | ||||
| 		resource.NewWithAttributes( | ||||
| 			semconv.SchemaURL, | ||||
| 			semconv.ServiceName("fib"), | ||||
| 			semconv.ServiceVersion("v0.1.0"), | ||||
| 			attribute.String("environment", "demo"), | ||||
| 		), | ||||
| 	) | ||||
| 	return r | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	l := log.New(os.Stdout, "", 0) | ||||
|  | ||||
| 	// Write telemetry data to a file. | ||||
| 	f, err := os.Create("traces.txt") | ||||
| 	if err != nil { | ||||
| 		l.Fatal(err) | ||||
| 	} | ||||
| 	defer f.Close() | ||||
|  | ||||
| 	exp, err := newExporter(f) | ||||
| 	if err != nil { | ||||
| 		l.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	tp := trace.NewTracerProvider( | ||||
| 		trace.WithBatcher(exp), | ||||
| 		trace.WithResource(newResource()), | ||||
| 	) | ||||
| 	defer func() { | ||||
| 		if err := tp.Shutdown(context.Background()); err != nil { | ||||
| 			l.Fatal(err) | ||||
| 		} | ||||
| 	}() | ||||
| 	otel.SetTracerProvider(tp) | ||||
|  | ||||
| 	sigCh := make(chan os.Signal, 1) | ||||
| 	signal.Notify(sigCh, os.Interrupt) | ||||
|  | ||||
| 	errCh := make(chan error) | ||||
| 	app := NewApp(os.Stdin, l) | ||||
| 	go func() { | ||||
| 		errCh <- app.Run(context.Background()) | ||||
| 	}() | ||||
|  | ||||
| 	select { | ||||
| 	case <-sigCh: | ||||
| 		l.Println("\ngoodbye") | ||||
| 		return | ||||
| 	case err := <-errCh: | ||||
| 		if err != nil { | ||||
| 			l.Fatal(err) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| @@ -20,7 +20,6 @@ module-sets: | ||||
|       - go.opentelemetry.io/otel/bridge/opentracing | ||||
|       - go.opentelemetry.io/otel/bridge/opentracing/test | ||||
|       - go.opentelemetry.io/otel/example/dice | ||||
|       - go.opentelemetry.io/otel/example/fib | ||||
|       - go.opentelemetry.io/otel/example/namedtracer | ||||
|       - go.opentelemetry.io/otel/example/otel-collector | ||||
|       - go.opentelemetry.io/otel/example/passthrough | ||||
|   | ||||
		Reference in New Issue
	
	Block a user