diff options
Diffstat (limited to 'src/go/collectors/go.d.plugin/modules/logstash/node_stats.go')
-rw-r--r-- | src/go/collectors/go.d.plugin/modules/logstash/node_stats.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/logstash/node_stats.go b/src/go/collectors/go.d.plugin/modules/logstash/node_stats.go new file mode 100644 index 000000000..1687f333d --- /dev/null +++ b/src/go/collectors/go.d.plugin/modules/logstash/node_stats.go @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package logstash + +// https://www.elastic.co/guide/en/logstash/current/node-stats-api.html + +type nodeStats struct { + JVM jvmStats `json:"jvm" stm:"jvm"` + Process processStats `json:"process" stm:"process"` + Event eventsStats `json:"event" stm:"event"` + Pipelines map[string]pipelineStats `json:"pipelines" stm:"pipelines"` +} + +type pipelineStats struct { + Event eventsStats `json:"events" stm:"event"` +} + +type eventsStats struct { + In int `json:"in" stm:"in"` + Filtered int `json:"filtered" stm:"filtered"` + Out int `json:"out" stm:"out"` + DurationInMillis int `json:"duration_in_millis" stm:"duration_in_millis"` + QueuePushDurationInMillis int `json:"queue_push_duration_in_millis" stm:"queue_push_duration_in_millis"` +} + +type processStats struct { + OpenFileDescriptors int `json:"open_file_descriptors" stm:"open_file_descriptors"` +} + +type jvmStats struct { + Threads struct { + Count int `stm:"count"` + } `stm:"threads"` + Mem jvmMemStats `stm:"mem"` + GC jvmGCStats `stm:"gc"` + UptimeInMillis int `json:"uptime_in_millis" stm:"uptime_in_millis"` +} + +type jvmMemStats struct { + HeapUsedPercent int `json:"heap_used_percent" stm:"heap_used_percent"` + HeapCommittedInBytes int `json:"heap_committed_in_bytes" stm:"heap_committed_in_bytes"` + HeapUsedInBytes int `json:"heap_used_in_bytes" stm:"heap_used_in_bytes"` + Pools struct { + Survivor jvmPoolStats `stm:"survivor"` + Old jvmPoolStats `stm:"old"` + Young jvmPoolStats `stm:"eden"` + } `stm:"pools"` +} + +type jvmPoolStats struct { + UsedInBytes int `json:"used_in_bytes" stm:"used_in_bytes"` + CommittedInBytes int `json:"committed_in_bytes" stm:"committed_in_bytes"` +} + +type jvmGCStats struct { + Collectors struct { + Old gcCollectorStats `stm:"old"` + Young gcCollectorStats `stm:"eden"` + } `stm:"collectors"` +} + +type gcCollectorStats struct { + CollectionTimeInMillis int `json:"collection_time_in_millis" stm:"collection_time_in_millis"` + CollectionCount int `json:"collection_count" stm:"collection_count"` +} |