statsd_exporter
script_exporter
statsd_exporter | script_exporter | |
---|---|---|
3 | 1 | |
896 | 311 | |
0.9% | - | |
7.7 | 7.8 | |
7 days ago | 7 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
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.
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) } }
script_exporter
What are some alternatives?
pushgateway - Push acceptor for ephemeral and batch jobs.
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.
django-prometheus - Export Django monitoring metrics for Prometheus.io
version-checker - Kubernetes utility for exposing image versions in use, compared to latest available upstream, as metrics.
windows_exporter - Prometheus exporter for Windows machines
vulnerability-exporter - A Prometheus Exporter for managing vulnerabilities in kubernetes by using trivy
process-exporter - Prometheus exporter that mines /proc to report on selected processes
nri-flex - An application-agnostic, all-in-one New Relic integration integration
haproxy_exporter - Simple server that scrapes HAProxy stats and exports them via HTTP for Prometheus consumption
shellyplug-exporter - Prometheus Exporter for Shelly plugs
client_python - Prometheus instrumentation library for Python applications
Go-Elasticsearch-RabbitMQ - Go-Elasticsearch-RabbitMQ