Skip to main content
ApinizerMetricsService collects various metrics about API traffic, external connections, cache operations, and JVM status. These metrics are provided in Prometheus format and can be integrated with monitoring systems.

API Traffic Metrics

API requests, success/error rates, response times, and sizes

External Connection Metrics

Requests made to external services, success/error rates, response times

Cache Metrics

Cache operations, success/error rates, response times

JVM Metrics

Memory usage, GC, thread status, processor usage
Each metric is collected in two formats:
  • General Metric: Total values without labels (e.g., total count of all API requests)
  • Tagged Metric: Metrics enriched with labels for detailed analysis (e.g., requests by API ID)
  • API Traffic Metrics: API requests, success/error rates, response times, and sizes
  • External Connection Metrics: Requests made to external services, success/error rates, response times
  • Cache Metrics: Cache operations, success/error rates, response times
  • JVM Metrics: Memory usage, GC, thread status, processor usage
Each metric is collected in two formats:
  • General Metric: Total values without labels (e.g., total count of all API requests)
  • Tagged Metric: Metrics enriched with labels for detailed analysis (e.g., requests by API ID)

Prometheus Metric Types

Gateway metrics are collected using Prometheus’s four basic metric types. These types are designed to best represent different data types and behaviors. Each metric type serves different purposes depending on how you collect and analyze the data.
Counter is a value that only increases. It starts from zero when the application runs and only resets when the application is restarted. Counter type metrics are ideal for tracking continuously increasing values such as total request count, error count, or completed operation count.Available Operations:
  • sum: The total value itself
  • rate: Calculates the rate of increase over time (such as how much it increases per second)
  • increase: Calculates the total increase over a specific time range
Gauge represents an instantaneous value. This value can increase, decrease, or remain constant. Gauge type metrics are used to monitor an instantaneous state or level such as current memory usage, instantaneous CPU usage, or number of active threads.Available Operations:
  • sum: Sum of Gauge values grouped by labels
  • mean: Average of Gauge values grouped by labels
  • min/max: Minimum or maximum of values grouped by labels
Timer measures how long an operation takes (usually in milliseconds or seconds). Although not technically a special type in Prometheus, it is a metric created by libraries like Micrometer through a combination of DistributionSummary and Counter. These metrics provide information such as average duration, maximum duration, and percentiles.Available Operations:
  • sum: Gives the total duration
  • count: Gives how many times the operation was performed in total
  • mean: Calculates the average duration of the operation
  • max: Gives the longest observed duration
  • histogram_quantile: Calculates percentiles
DistributionSummary is used to track the distribution of a value. It works similarly to Timer, but instead of measuring time, it measures arbitrary numerical values such as request size, file size. This metric also provides statistical information such as average, maximum, and percentiles.Available Operations:
  • sum: Gives the total value
  • count: Gives the number of observed values
  • mean: Calculates the average of values
  • max: Gives the largest observed value
  • histogram_quantile: Calculates percentiles

API Traffic Metrics

These metrics are used to monitor and measure the performance of API requests passing through Apinizer. While total request, success, error, and cache hit rates are tracked numerically, request processing duration and data sizes are measured for performance analysis. Some metrics are provided with api_id and api_name tags for detailed API-based examination.
Metric NameDescriptionTypeLabels
apinizer_api_traffic_total_countTotal API traffic requestsCounter-
apinizer_api_traffic_success_countSuccessful API requestsCounter-
apinizer_api_traffic_error_countFailed API requestsCounter-
apinizer_api_traffic_blocked_countBlocked API requestsCounter-
apinizer_api_traffic_request_pipeline_timeAPI request pipeline duration (ms)Timer-
apinizer_api_traffic_routing_timeAPI routing duration (ms)Timer-
apinizer_api_traffic_response_pipeline_timeAPI response pipeline duration (ms)Timer-
apinizer_api_traffic_total_timeAPI total duration (ms)Timer-
apinizer_api_traffic_request_sizeAPI request size (byte)DistributionSummary-
apinizer_api_traffic_response_sizeAPI response size (byte)DistributionSummary-
apinizer_api_traffic_cache_hits_countAPI cache hit countCounter-
apinizer_api_traffic_total_count_taggedTotal API traffic requestsCounterapi_id, api_name
apinizer_api_traffic_success_count_taggedSuccessful API requestsCounterapi_id, api_name
apinizer_api_traffic_error_count_taggedFailed API requestsCounterapi_id, api_name
apinizer_api_traffic_blocked_count_taggedBlocked API requestsCounterapi_id, api_name
apinizer_api_traffic_request_pipeline_time_taggedAPI request pipeline duration (ms)Timerapi_id, api_name
apinizer_api_traffic_routing_time_taggedAPI routing duration (ms)Timerapi_id, api_name
apinizer_api_traffic_response_pipeline_time_taggedAPI response pipeline duration (ms)Timerapi_id, api_name
apinizer_api_traffic_total_time_taggedAPI total duration (ms)Timerapi_id, api_name
apinizer_api_traffic_request_size_taggedAPI request size (byte)DistributionSummaryapi_id, api_name
apinizer_api_traffic_response_size_taggedAPI response size (byte)DistributionSummaryapi_id, api_name
apinizer_api_traffic_cache_hits_count_taggedAPI cache hit countCounterapi_id, api_name

External Connection Metrics

These metrics are used to monitor external requests made through Apinizer. External service performance is analyzed by measuring total request, error count, and response time. Some metrics are provided with the url tag for detailed URL-based examination.
Metric NameDescriptionTypeLabels
apinizer_external_requests_total_countTotal external request countCounter-
apinizer_external_errors_total_countTotal external error countCounter-
apinizer_external_response_timeExternal response time (ms)Timer-
apinizer_external_requests_total_count_taggedTotal external request countCounterurl
apinizer_external_errors_total_count_taggedTotal external error countCounterurl
apinizer_external_response_time_taggedExternal response time (ms)Timerurl

Cache Metrics

These metrics are used to monitor the worker (gateway) pod’s interaction with cache. The worker pod’s cache operations and performance are analyzed by measuring total request, error count, and response time.
Metric NameDescriptionTypeLabels
apinizer_cache_requests_total_countTotal cache request countCounter-
apinizer_cache_errors_total_countTotal cache error countCounter-
apinizer_cache_response_timeCache operation response time (ms)Timer-

JVM Metrics

These metrics are used to monitor JVM performance and resource usage in the worker (gateway) pod. They help analyze system efficiency by providing detailed information about memory, GC (Garbage Collection) activity, and thread status.
Metric NameDescriptionTypeLabels
jvm_buffer_count_buffersNumber of buffers used by JVMGauge-
jvm_buffer_memory_used_bytesTotal buffer memory used (byte)Gauge-
jvm_buffer_total_capacity_bytesBuffer total capacity (byte)Gauge-
jvm_gc_live_data_size_bytesData size surviving after GC (byte)Gauge-
jvm_gc_max_data_size_bytesMaximum data size for GC (byte)Gauge-
jvm_gc_memory_allocated_bytes_totalMemory allocated by GC (byte)Counter-
jvm_gc_memory_promoted_bytes_totalMemory promoted by GC (byte)Counter-
jvm_gc_pause_seconds_countTotal number of GC pausesCounter-
jvm_gc_pause_seconds_maxLongest GC pause (seconds)Gauge-
jvm_gc_pause_seconds_sumTotal GC pause duration (seconds)Gauge-
jvm_memory_committed_bytesMemory allocated by JVM (byte)Gauge-
jvm_memory_max_bytesMaximum memory available to JVM (byte)Gauge-
jvm_memory_used_bytesMemory used by JVM (byte)Gauge-
jvm_threads_daemon_threadsNumber of running daemon threadsGauge-
jvm_threads_live_threadsNumber of actively running threadsGauge-
jvm_threads_peak_threadsHighest thread count reachedGauge-
jvm_threads_started_threads_totalTotal number of threads startedCounter-
jvm_threads_states_threadsNumber of different thread statesGaugestate

System Metrics

These metrics are used to monitor the worker (gateway) pod’s CPU and system load. Provides information about CPU core count, usage rate, and load average.
Metric NameDescriptionTypeLabels
system_cpu_countTotal CPU core countGauge-
system_cpu_usageSystem-wide CPU usage rateGauge-
system_load_average_1mSystem load average for the last 1 minuteGauge-

Process Metrics

These metrics monitor the resource usage of the JVM process running in the worker (gateway) pod. Provides information about CPU usage, open file count, and maximum file limit.
Metric NameDescriptionTypeLabels
process_cpu_usageJVM’s CPU usage rateGauge-
process_files_max_filesMaximum number of files that can be openedGauge-
process_files_open_filesNumber of open filesGauge-