Slackbot
09/15/2021, 11:56 AMPranay
Pranay
Ankit Nayan
Ankit Nayan
Sridhar Neradabilli
09/15/2021, 12:13 PMSERVICE_NAME=<service_name> INSECURE_MODE=true OTEL_METRICS_EXPORTER=none OTEL_EXPORTER_OTLP_ENDPOINT=<IP of SigNoz backend:4317> go run main.go
// main.go
package main
import (
"context"
"log"
"<http://google.golang.org/grpc/credentials|google.golang.org/grpc/credentials>"
"<http://go.opentelemetry.io/otel|go.opentelemetry.io/otel>"
"<http://go.opentelemetry.io/otel/exporters/otlp|go.opentelemetry.io/otel/exporters/otlp>"
"<http://go.opentelemetry.io/otel/exporters/otlp/otlpgrpc|go.opentelemetry.io/otel/exporters/otlp/otlpgrpc>"
"<http://go.opentelemetry.io/otel/label|go.opentelemetry.io/otel/label>"
"<http://go.opentelemetry.io/otel/sdk/resource|go.opentelemetry.io/otel/sdk/resource>"
sdktrace "<http://go.opentelemetry.io/otel/sdk/trace|go.opentelemetry.io/otel/sdk/trace>"
)
var (
serviceName = os.Getenv("SERVICE_NAME")
collectorURL = os.Getenv("OTEL_EXPORTER_OTLP_ENDPOINT")
insecure = os.Getenv("INSECURE_MODE")
)
func initTracer() func(context.Context) error {
secureOption := otlpgrpc.WithTLSCredentials(credentials.NewClientTLSFromCert(nil, ""))
if len(insecure) > 0 {
secureOption = otlpgrpc.WithInsecure()
}
exporter, err := otlp.NewExporter(
context.Background(),
otlpgrpc.NewDriver(
secureOption,
otlpgrpc.WithEndpoint(collectorURL),
otlpgrpc.WithHeaders(headers),
),
)
if err != nil {
log.Fatal(err)
}
resources, err := resource.New(
context.Background(),
resource.WithAttributes(
label.String("service.name", serviceName),
label.String("library.language", "go"),
),
)
if err != nil {
log.Printf("Could not set resources: ", err)
}
otel.SetTracerProvider(
sdktrace.NewTracerProvider(
sdktrace.WithConfig(sdktrace.Config{DefaultSampler: sdktrace.AlwaysSample()}),
sdktrace.WithSpanProcessor(sdktrace.NewBatchSpanProcessor(exporter)),
sdktrace.WithSyncer(exporter),
sdktrace.WithResource(resources),
),
)
return exporter.Shutdown
}
func main() {
cleanup := initTracer()
defer cleanup(context.Background())
// rest of initialization, including creating HTTP and gRPC servers/handlers...
}
Sridhar Neradabilli
09/15/2021, 12:16 PM./svfileserver
svfileserver is the name of the go binary.
now tell me how to instrument this go binary to signoz?Ankit Nayan
Ankit Nayan
Ankit Nayan
var (
serviceName = os.Getenv("SERVICE_NAME")
collectorURL = os.Getenv("OTEL_EXPORTER_OTLP_ENDPOINT")
insecure = os.Getenv("INSECURE_MODE")
)
Sridhar Neradabilli
09/15/2021, 12:22 PMAnkit Nayan
var (
serviceName = "myGolangService"
collectorURL = "signoz-url"
insecure = true
)
Sridhar Neradabilli
09/15/2021, 12:22 PMAnkit Nayan
func main() {
cleanup := initTracer()
defer cleanup(context.Background())
// rest of initialization, including creating HTTP and gRPC servers/handlers...
}
Sridhar Neradabilli
09/15/2021, 12:27 PMAnkit Nayan
initTracer()
from you main.goSridhar Neradabilli
09/15/2021, 12:30 PMcollectorURL
for example, if my go application is running on a URL, say example.domainname.com , then collectorURL can be like this?
collectorURL = "example.domainname.com"Ankit Nayan
Ankit Nayan
Ankit Nayan
Sridhar Neradabilli
09/15/2021, 7:38 PM$ go get <http://go.opentelemetry.io/otel/exporters/otlp|go.opentelemetry.io/otel/exporters/otlp>
can't load package: package <http://go.opentelemetry.io/otel/exporters/otlp|go.opentelemetry.io/otel/exporters/otlp>: no Go files in /home/sneradabilli/software-library/src/go.opentelemetry.io/otel/exporters/otlp
Sridhar Neradabilli
09/15/2021, 7:39 PM$ go get <http://go.opentelemetry.io/otel/exporters/otlp/otlpgrpc|go.opentelemetry.io/otel/exporters/otlp/otlpgrpc>
package <http://go.opentelemetry.io/otel/exporters/otlp/otlpgrpc|go.opentelemetry.io/otel/exporters/otlp/otlpgrpc>: cannot find package "<http://go.opentelemetry.io/otel/exporters/otlp/otlpgrpc|go.opentelemetry.io/otel/exporters/otlp/otlpgrpc>" in any of:
/usr/local/go/src/go.opentelemetry.io/otel/exporters/otlp/otlpgrpc (from $GOROOT)
/home/sneradabilli/software-library/src/go.opentelemetry.io/otel/exporters/otlp/otlpgrpc (from $GOPATH)
/home/sneradabilli/software-library/src/git.sandvine.com/eng/svfilesever/src/go.opentelemetry.io/otel/exporters/otlp/otlpgrpc
Ankit Nayan
GOPATH
? Below link states the go get
command https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp#section-readmeSridhar Neradabilli
09/16/2021, 11:04 AM$ go get -u <http://go.opentelemetry.io/otel/exporters/otlp|go.opentelemetry.io/otel/exporters/otlp>
package <http://go.opentelemetry.io/otel/exporters/otlp|go.opentelemetry.io/otel/exporters/otlp>: no Go files in /home/sneradabilli/software-library/src/go.opentelemetry.io/otel/exporters/otlp
$
Sridhar Neradabilli
09/16/2021, 11:05 AM