Skip to content

otel to prometheus #6152

Closed as not planned
Closed as not planned
@geraldstanje

Description

@geraldstanje

Hi,

i have a question to exporting the metrics to prometheus. how can i export it with otelprom.New() and serveMetrics?

package main

import (
  ...
  
	"github.com/prometheus/client_golang/prometheus"
	"github.com/prometheus/client_golang/prometheus/promhttp"
	otelprom "go.opentelemetry.io/otel/exporters/prometheus"
)

func main() {
  ...
    
        exporter, err := otelprom.New()
	if err != nil {
		log.Fatalf("otelprom.New(): failed to initialize otelprom: %w", err)
	}
	go serveMetrics(exporter.Collector)
}

func serveMetrics(exporter *otelprom.Exporter) {
	registry := prometheus.NewRegistry()

	// Register the exporter (it implements the prometheus.Collector interface)
	err := registry.Register(exporter)
	if err != nil {
		log.Printf("error registering exporter: %v", err)
		return
	}

	log.Println("Serving metrics at http://localhost:2222/metrics")
	http.Handle("/metrics", promhttp.HandlerFor(registry, promhttp.HandlerOpts{}))
	err = http.ListenAndServe(":2222", nil)
	if err != nil {
		log.Printf("error serving http: %v", err)
		return
	}
}

error:

./main.go:343:27: exporter.Collector undefined (type *"go.opentelemetry.io/otel/exporters/prometheus".Exporter has no field or method Collector)
./main.go:371:27: cannot use exporter (variable of type *"go.opentelemetry.io/otel/exporters/prometheus".Exporter) as "github.com/prometheus/client_golang/prometheus".Collector value in argument to registry.Register: *"go.opentelemetry.io/otel/exporters/prometheus".Exporter does not implement "github.com/prometheus/client_golang/prometheus".Collector (wrong type for method Collect)
                have Collect("context".Context, *metricdata.ResourceMetrics) error
                want Collect(chan<- "github.com/prometheus/client_golang/prometheus".Metric)

i use:

go 1.22.5
require (
	github.com/aws/aws-sdk-go-v2 v1.30.3
	github.com/aws/aws-sdk-go-v2/config v1.27.11
	github.com/aws/aws-sdk-go-v2/credentials v1.17.27
	github.com/aws/aws-sdk-go-v2/service/sts v1.30.3
	github.com/montanaflynn/stats v0.7.1
	github.com/prometheus/client_golang v1.20.5
	go.opentelemetry.io/otel/exporters/prometheus v0.55.0
)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingresponse neededWaiting on user input before progress can be made

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions