----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/74557/ -----------------------------------------------------------
(Updated Aug. 24, 2023, 11:30 a.m.) Review request for ranger, Dhaval Shah, Abhay Kulkarni, Madhan Neethiraj, and Sailaja Polavarapu. Repository: ranger Description ------- RANGER-4196- Tomcat runtime metrics collection . As part of RANGER-4196, developed the feature to collect runtime container metrics that can help in debugging any performance issue. Although I have tested it for KMS only, but change has been made in a way that it will be avilable for all ranger modules if registered with "ranger-metrics" module. Diffs (updated) ----- embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java cae9075a7 embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServerMetricsCollector.java PRE-CREATION ranger-metrics/pom.xml 44602c3b8 ranger-metrics/src/main/java/org/apache/ranger/metrics/RangerMetricsSystemWrapper.java cd806574d ranger-metrics/src/main/java/org/apache/ranger/metrics/source/RangerMetricsContainerSource.java PRE-CREATION ranger-metrics/src/test/java/org/apache/ranger/metrics/source/TestRangerMetricsContainerSource.java PRE-CREATION Diff: https://reviews.apache.org/r/74557/diff/3/ Changes: https://reviews.apache.org/r/74557/diff/2-3/ Testing ------- build is passed. Patched the new jar on existing cluster and tried to fetch the kms metrics. Following is the output: command: curl -ivk --negotiate -u : -H "Content-Type: application/json" -X GET http://<KMSSERVER>:9292/kms/metrics/json Output: { "KMS": { "GET_CURRENT_KEY_COUNT": 0, "DELETE_KEY_ELAPSED_TIME": 0, "EEK_DECRYPT_ELAPSED_TIME": 0, "GET_KEYS_METADATA_ELAPSED_TIME": 0, "EEK_GENERATE_ELAPSED_TIME": 0, "GET_CURRENT_KEY_ELAPSED_TIME": 0, "EEK_REENCRYPT_ELAPSED_TIME": 0, "KEY_CREATE_COUNT": 0, "UNAUTHORIZED_CALLS_COUNT": 0, "KEY_CREATE_ELAPSED_TIME": 0, "GET_KEY_VERSION_COUNT": 0, "ROLL_NEW_VERSION_ELAPSED_TIME": 0, "REENCRYPT_EEK_BATCH_COUNT": 0, "REENCRYPT_EEK_BATCH_ELAPSED_TIME": 0, "GET_KEYS_METADATA_COUNT": 0, "GET_KEY_VERSIONS_COUNT": 0, "GET_KEY_VERSIONS_ELAPSED_TIME": 0, "GET_KEYS_COUNT": 0, "EEK_GENERATE_COUNT": 0, "INVALIDATE_CACHE_COUNT": 0, "GET_METADATA_COUNT": 0, "REENCRYPT_EEK_BATCH_KEYS_COUNT": 0, "EEK_REENCRYPT_COUNT": 0, "UNAUTHENTICATED_CALLS_COUNT": 3, "GET_KEY_VERSION_ELAPSED_TIME": 0, "INVALIDATE_CACHE_ELAPSED_TIME": 0, "ROLL_NEW_VERSION_COUNT": 0, "EEK_DECRYPT_COUNT": 0, "GET_KEYS_METADATA_KEYNAMES_COUNT": 0, "DELETE_KEY_COUNT": 0, "GET_KEYS_ELAPSED_TIME": 0, "GET_METADATA_ELAPSED_TIME": 0, "TOTAL_CALL_COUNT": 6 }, "RangerWebContainer": { "ActiveConnectionsCount": 2, "ConnectionTimeout": 60000, "MaxWorkerThreadsCount": 200, "TotalWorkerThreadsCount": 10, "KeepAliveTimeout": 60000, "ActiveWorkerThreadsCount": 0, "ConnectionAcceptCount": 100, "MinSpareWorkerThreadsCount": 10, "MaxConnectionsCount": 8192 }, "RangerJvm": { "GcTimeTotal": 595, "SystemLoadAvg": 10.21, "ThreadsBusy": 5, "GcCountTotal": 17, "MemoryMax": 967311360, "MemoryCurrent": 273806280, "ThreadsWaiting": 17, "ProcessorsAvailable": 4, "GcTimeMax": 595, "ThreadsBlocked": 0, "ThreadsRemaining": 16 } } Knowing the Tomcat connector type is also useful, so logged following on container startup. 2023-08-22 12:43:45,080 INFO org.apache.ranger.server.tomcat.EmbeddedServer: [vktomcat-1.vktomcat.********-startStop-1]: Selected Tomcat protocolHandler: "http-nio-9292" File Attachments ---------------- Updated with test case. https://reviews.apache.org/media/uploaded/files/2023/08/24/959a2112-6186-414a-9d84-c41a0fc677ad__0001-RANGER-4196-Tomcat-metrics-collection-code.patch Thanks, Vikas Kumar
