17
17
18
18
package org .compuscene .metrics .prometheus ;
19
19
20
- import io .prometheus .client .Summary ;
21
20
import org .elasticsearch .Build ;
22
21
import org .elasticsearch .action .ClusterStatsData ;
23
22
import org .elasticsearch .action .admin .cluster .health .ClusterHealthResponse ;
24
23
import org .elasticsearch .action .admin .cluster .node .stats .NodeStats ;
25
24
import org .elasticsearch .action .admin .indices .stats .CommonStats ;
26
25
import org .elasticsearch .action .admin .indices .stats .IndexStats ;
27
26
import org .elasticsearch .action .admin .indices .stats .IndicesStatsResponse ;
27
+ import org .elasticsearch .cluster .health .ClusterHealthStatus ;
28
28
import org .elasticsearch .cluster .health .ClusterIndexHealth ;
29
29
import org .elasticsearch .cluster .node .DiscoveryNodeRole ;
30
30
import org .elasticsearch .http .HttpStats ;
44
44
import java .util .List ;
45
45
import java .util .Map ;
46
46
47
+ import io .prometheus .client .Summary ;
48
+
47
49
/**
48
50
* A class that describes a Prometheus metrics collector.
49
51
*/
@@ -82,30 +84,46 @@ public void registerMetrics() {
82
84
}
83
85
84
86
private void registerClusterMetrics () {
85
- catalog .registerClusterGauge ("cluster_status" , "Cluster status" );
86
-
87
- catalog .registerClusterGauge ("cluster_nodes_number" , "Number of nodes in the cluster" );
88
- catalog .registerClusterGauge ("cluster_datanodes_number" , "Number of data nodes in the cluster" );
89
-
90
- catalog .registerClusterGauge ("cluster_shards_active_percent" , "Percent of active shards" );
91
- catalog .registerClusterGauge ("cluster_shards_number" , "Number of shards" , "type" );
87
+ catalog .registerClusterGauge (
88
+ "cluster_status" , "Health status of the cluster, based on the state of its primary and replica shards" );
89
+ catalog .registerClusterEnum (
90
+ "cluster_health_status" ,
91
+ "Health status of the cluster, based on the state of its primary and replica shards as enumeration" ,
92
+ ClusterHealthStatus .class
93
+ );
94
+
95
+ catalog .registerClusterGauge ("cluster_nodes_number" , "The number of nodes within the cluster" );
96
+ catalog .registerClusterGauge ("cluster_datanodes_number" , "The number of nodes that are dedicated data nodes" );
97
+
98
+ catalog .registerClusterGauge (
99
+ "cluster_shards_active_percent" , "The ratio of active shards in the cluster expressed as a percentage" );
100
+ catalog .registerClusterGaugeUnit (
101
+ "cluster_shards_active" , "ratio" , "The ratio of active shards in the cluster" );
102
+ catalog .registerClusterGauge ("cluster_shards_number" , "The number of shards by type" , "type" );
92
103
93
104
catalog .registerClusterGauge ("cluster_pending_tasks_number" , "Number of pending tasks" );
94
- catalog .registerClusterGauge ("cluster_task_max_waiting_time_seconds" , "Max waiting time for tasks" );
105
+ catalog .registerClusterGaugeUnit (
106
+ "cluster_task_max_waiting_time" ,
107
+ "seconds" ,
108
+ "The time expressed in seconds since the earliest initiated task is waiting for being performed" );
95
109
96
- catalog .registerClusterGauge ("cluster_is_timedout_bool" , "Is the cluster timed out ?" );
110
+ catalog .registerClusterGauge (
111
+ "cluster_is_timedout_bool" ,
112
+ "If false the response returned within the period of time that is specified by the timeout parameter (30s by default)" );
97
113
98
- catalog .registerClusterGauge ("cluster_inflight_fetch_number" , "Number of in flight fetches" );
114
+ catalog .registerClusterGauge ("cluster_inflight_fetch_number" , "The number of unfinished fetches" );
99
115
}
100
116
101
117
private void updateClusterMetrics (ClusterHealthResponse chr ) {
102
118
if (chr != null ) {
103
119
catalog .setClusterGauge ("cluster_status" , chr .getStatus ().value ());
120
+ catalog .setClusterEnum ("cluster_health_status" , chr .getStatus ().name ());
104
121
105
122
catalog .setClusterGauge ("cluster_nodes_number" , chr .getNumberOfNodes ());
106
123
catalog .setClusterGauge ("cluster_datanodes_number" , chr .getNumberOfDataNodes ());
107
124
108
125
catalog .setClusterGauge ("cluster_shards_active_percent" , chr .getActiveShardsPercent ());
126
+ catalog .setClusterGauge ("cluster_shards_active" , chr .getActiveShardsPercent () / 100.0 );
109
127
110
128
catalog .setClusterGauge ("cluster_shards_number" , chr .getActiveShards (), "active" );
111
129
catalog .setClusterGauge ("cluster_shards_number" , chr .getActivePrimaryShards (), "active_primary" );
@@ -115,7 +133,7 @@ private void updateClusterMetrics(ClusterHealthResponse chr) {
115
133
catalog .setClusterGauge ("cluster_shards_number" , chr .getUnassignedShards (), "unassigned" );
116
134
117
135
catalog .setClusterGauge ("cluster_pending_tasks_number" , chr .getNumberOfPendingTasks ());
118
- catalog .setClusterGauge ("cluster_task_max_waiting_time_seconds " , chr .getTaskMaxWaitingTime ().millis () / 1000.0 );
136
+ catalog .setClusterGauge ("cluster_task_max_waiting_time " , chr .getTaskMaxWaitingTime ().millis () / 1000.0 );
119
137
120
138
catalog .setClusterGauge ("cluster_is_timedout_bool" , chr .isTimedOut () ? 1 : 0 );
121
139
0 commit comments