script_exporter
statsd_exporter
script_exporter | statsd_exporter | |
---|---|---|
1 | 3 | |
311 | 895 | |
- | 0.9% | |
7.8 | 7.7 | |
8 days ago | 15 days ago | |
Go | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
script_exporter
statsd_exporter
-
Help: UDP proxy/relay to multiple destinations
It's part of the statsd_exporter.
- Ask HN: Prometheus vs. StatsD / Telegraf
-
Statsd + Prometheus on Grafana Cloud
package metrics import ( "fmt" "strings" "time" "github.com/alexcesaro/statsd" ) // Hybrid metrics type Hybrid struct { Statsd StatsdConfig Client *statsd.Client AttachLabels bool } // StatsdConfig ... type StatsdConfig struct { Host string Prefix string } // Init ... func (m *Hybrid) Init() error { // Set up the statsd client client, err := statsd.New( statsd.Address(m.Statsd.Host), statsd.Prefix(m.Statsd.Prefix), statsd.FlushPeriod(time.Second*1), ) if err != nil { return fmt.Errorf("Hybrid: Could not connect to %s: %s", m.Statsd.Host, err.Error()) } m.Client = client return nil } // Format key with labels func (m *Hybrid) formatKeyWithLabels(key string, labels map[string]string) string { // Do we want to attach labels? if m.AttachLabels == false { return key } // Use librato-style tags // metrim.name#tagName=val,tag2Name=val2:0|c // https://github.com/prometheus/statsd_exporter#tagging-extensions if len(key) == 0 { return key } formattedLabels := []string{} for labelKey, labelVal := range labels { formattedLabels = append(formattedLabels, fmt.Sprintf("%s=%s", labelKey, labelVal)) } joinedFormattedLabels := strings.TrimSpace(strings.Join(formattedLabels, ",")) if joinedFormattedLabels != "" { key = fmt.Sprintf("%s#%s", key, joinedFormattedLabels) } return strings.Trim(key, "#") } // Increment ... func (m *Hybrid) Increment(key string, labels map[string]string) { m.IncrementBy(key, 1, labels) } // IncrementBy ... func (m *Hybrid) IncrementBy(key string, by int, labels map[string]string) { updatedKey := m.formatKeyWithLabels(key, labels) if m.Client != nil { m.Client.Count(updatedKey, by) } } // Gauge ... func (m *Hybrid) Gauge(key string, value int, labels map[string]string) { updatedKey := m.formatKeyWithLabels(key, labels) if m.Client != nil { m.Client.Gauge(updatedKey, value) } }
What are some alternatives?
DevOps - I created this repository to keep my learning, notes, and code in one place for various tools in DevOps. Now, it's helping thousands of learners, practitioners, and professionals every day in their DevOps journey.
pushgateway - Push acceptor for ephemeral and batch jobs.
version-checker - Kubernetes utility for exposing image versions in use, compared to latest available upstream, as metrics.
django-prometheus - Export Django monitoring metrics for Prometheus.io
vulnerability-exporter - A Prometheus Exporter for managing vulnerabilities in kubernetes by using trivy
windows_exporter - Prometheus exporter for Windows machines
nri-flex - An application-agnostic, all-in-one New Relic integration integration
process-exporter - Prometheus exporter that mines /proc to report on selected processes
shellyplug-exporter - Prometheus Exporter for Shelly plugs
haproxy_exporter - Simple server that scrapes HAProxy stats and exports them via HTTP for Prometheus consumption
Go-Elasticsearch-RabbitMQ - Go-Elasticsearch-RabbitMQ
client_python - Prometheus instrumentation library for Python applications