mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2024-12-26 21:05:00 +02:00
Remove example/fib (#4723)
This commit is contained in:
parent
8ceba1368a
commit
a27c53b9b5
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
|
||||
|
Loading…
Reference in New Issue
Block a user