statsd_exporter
process-exporter
statsd_exporter | process-exporter | |
---|---|---|
3 | 6 | |
896 | 1,576 | |
0.9% | - | |
7.7 | 5.4 | |
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) } }
process-exporter
-
Looking for an open source monitoring solution that will capture specific process info
OP is specifically asking about MacOS, but for *nix use-cases, there's the process_exporter that works to expose process level statistics. https://github.com/ncabatoff/process-exporter
- Monitor the highest CPU consuming process in prometheus
-
Linux process monitoring solutions
However, the process_exporter is useful for some situations where software has complex subprocess management and you want to track based on the cmdline running. For example all of the various PostgreSQL worker processes.
- Anyone using Process Exporter? How is your prometheus yml file configure for it?
-
Anyone using Process Exporter?
yes. The config options are different though. Just see the README https://github.com/ncabatoff/process-exporter
What are some alternatives?
pushgateway - Push acceptor for ephemeral and batch jobs.
node_exporter - Exporter for machine metrics
django-prometheus - Export Django monitoring metrics for Prometheus.io
systemd_exporter - Exporter for systemd unit metrics
windows_exporter - Prometheus exporter for Windows machines
cadvisor - Analyzes resource usage and performance characteristics of running containers.
haproxy_exporter - Simple server that scrapes HAProxy stats and exports them via HTTP for Prometheus consumption
procfs - procfs provides functions to retrieve system, kernel and process metrics from the pseudo-filesystem proc.
script_exporter - Prometheus exporter to execute scripts and collect metrics from the output or the exit status.
mongodb_exporter - A Prometheus exporter for MongoDB including sharding, replication and storage engines
client_python - Prometheus instrumentation library for Python applications
redis_exporter - Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x