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/otlpSridhar 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/otlpgrpcAnkit 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 AMSigNoz is an open-source APM. It helps developers monitor their applications & troubleshoot problems, an open-source alternative to DataDog, NewRelic, etc.
Powered by