88package org .elasticsearch .xpack .security .metric ;
99
1010/**
11- * Defines all security metric types that can be collected.
11+ * Defines a security metric type that can be collected.
12+ * Each metric type has a group, and metric info for tracking success, failure and total time.
1213 */
13- public enum SecurityMetricType {
14+ public record SecurityMetricType (
15+ SecurityMetricGroup group ,
16+ SecurityMetricInfo successMetricInfo ,
17+ SecurityMetricInfo failuresMetricInfo ,
18+ SecurityMetricInfo timeMetricInfo
19+ ) {
1420
15- AUTHC_API_KEY (
21+ public static final SecurityMetricType AUTHC_API_KEY = new SecurityMetricType (
1622 SecurityMetricGroup .AUTHC ,
1723 new SecurityMetricInfo ("es.security.authc.api_key.success.total" , "Number of successful API key authentications." , "count" ),
1824 new SecurityMetricInfo ("es.security.authc.api_key.failures.total" , "Number of failed API key authentications." , "count" ),
1925 new SecurityMetricInfo ("es.security.authc.api_key.time" , "Time it took (in nanoseconds) to execute API key authentication." , "ns" )
20- ),
26+ );
2127
22- CLOUD_AUTHC_API_KEY (
23- SecurityMetricGroup .AUTHC ,
24- new SecurityMetricInfo (
25- "es.security.authc.cloud_api_key.success.total" ,
26- "Number of successful cloud API key authentications." ,
27- "count"
28- ),
29- new SecurityMetricInfo (
30- "es.security.authc.cloud_api_key.failures.total" ,
31- "Number of failed cloud API key authentications." ,
32- "count"
33- ),
34- new SecurityMetricInfo (
35- "es.security.authc.cloud_api_key.time" ,
36- "Time it took (in nanoseconds) to execute cloud API key authentication." ,
37- "ns"
38- )
39- ),
40-
41- AUTHC_SERVICE_ACCOUNT (
28+ public static final SecurityMetricType AUTHC_SERVICE_ACCOUNT = new SecurityMetricType (
4229 SecurityMetricGroup .AUTHC ,
4330 new SecurityMetricInfo (
4431 "es.security.authc.service_account.success.total" ,
@@ -55,9 +42,9 @@ public enum SecurityMetricType {
5542 "Time it took (in nanoseconds) to execute service account authentication." ,
5643 "ns"
5744 )
58- ),
45+ );
5946
60- AUTHC_OAUTH2_TOKEN (
47+ public static final SecurityMetricType AUTHC_OAUTH2_TOKEN = new SecurityMetricType (
6148 SecurityMetricGroup .AUTHC ,
6249 new SecurityMetricInfo ("es.security.authc.token.success.total" , "Number of successful OAuth2 token authentications." , "count" ),
6350 new SecurityMetricInfo ("es.security.authc.token.failures.total" , "Number of failed OAuth2 token authentications." , "count" ),
@@ -66,48 +53,12 @@ public enum SecurityMetricType {
6653 "Time it took (in nanoseconds) to execute OAuth2 token authentication." ,
6754 "ns"
6855 )
69- ),
56+ );
7057
71- AUTHC_REALMS (
58+ public static final SecurityMetricType AUTHC_REALMS = new SecurityMetricType (
7259 SecurityMetricGroup .AUTHC ,
7360 new SecurityMetricInfo ("es.security.authc.realms.success.total" , "Number of successful realm authentications." , "count" ),
7461 new SecurityMetricInfo ("es.security.authc.realms.failures.total" , "Number of failed realm authentications." , "count" ),
7562 new SecurityMetricInfo ("es.security.authc.realms.time" , "Time it took (in nanoseconds) to execute realm authentication." , "ns" )
76- ),
77-
78- ;
79-
80- private final SecurityMetricGroup group ;
81- private final SecurityMetricInfo successMetricInfo ;
82- private final SecurityMetricInfo failuresMetricInfo ;
83- private final SecurityMetricInfo timeMetricInfo ;
84-
85- SecurityMetricType (
86- SecurityMetricGroup group ,
87- SecurityMetricInfo successMetricInfo ,
88- SecurityMetricInfo failuresMetricInfo ,
89- SecurityMetricInfo timeMetricInfo
90- ) {
91- this .group = group ;
92- this .successMetricInfo = successMetricInfo ;
93- this .failuresMetricInfo = failuresMetricInfo ;
94- this .timeMetricInfo = timeMetricInfo ;
95- }
96-
97- public SecurityMetricGroup group () {
98- return this .group ;
99- }
100-
101- public SecurityMetricInfo successMetricInfo () {
102- return successMetricInfo ;
103- }
104-
105- public SecurityMetricInfo failuresMetricInfo () {
106- return failuresMetricInfo ;
107- }
108-
109- public SecurityMetricInfo timeMetricInfo () {
110- return timeMetricInfo ;
111- }
112-
63+ );
11364}
0 commit comments