Skip to content

[METRICS] Add Prometheus Metrics Collection #80

@fentz26

Description

@fentz26

Problem

No metrics collection:

  • Cannot measure performance
  • No alerting capability
  • No dashboard support

Proposed Solution

Prometheus Integration

import "github.com/prometheus/client_golang/prometheus"

var (
    tasksTotal = prometheus.NewCounterVec(
        prometheus.CounterOpts{
            Name: "neona_tasks_total",
            Help: "Total number of tasks processed",
        },
        []string{"status", "connector"},
    )
    
    taskDuration = prometheus.NewHistogramVec(
        prometheus.HistogramOpts{
            Name:    "neona_task_duration_seconds",
            Help:    "Task execution duration",
            Buckets: prometheus.DefBuckets,
        },
        []string{"connector"},
    )
    
    activeWorkers = prometheus.NewGauge(
        prometheus.GaugeOpts{
            Name: "neona_active_workers",
            Help: "Number of active workers",
        },
    )
)

Metrics Endpoint

GET /metrics

# HELP neona_tasks_total Total number of tasks processed
# TYPE neona_tasks_total counter
neona_tasks_total{status="completed",connector="claude"} 142
neona_tasks_total{status="failed",connector="claude"} 3

Key Metrics

Metric Type Labels
neona_tasks_total Counter status, connector
neona_task_duration_seconds Histogram connector
neona_active_workers Gauge -
neona_http_requests_total Counter method, path, status
neona_db_connections Gauge -

Acceptance Criteria

  • Prometheus client integrated
  • /metrics endpoint
  • Key business metrics
  • HTTP request metrics
  • Database connection metrics

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions