Monitoring Functions

Gateway

The Gateway component exposes several metrics to help you monitor the health and behavior of your functions

MetricTypeDescriptionLabels
gateway_functions_secondshistogramFunction invocation time takenfunction_name
gateway_function_invocation_totalcounterFunction invocation countfunction_name, code
gateway_service_countcounterNumber of function replicasfunction_name
http_request_duration_secondshistogramSeconds spent serving HTTP requestsmethod, path, status
http_requests_totalcounterThe total number of HTTP requestsmethod, path, status

The http_request* metrics record the latency and statistics of /system/* routes to monitor the OpenFaaS gateway and its provider. The /async-function route is also recorded in these metrics to observe asynchronous ingestion rate and latency.

Examples

These basic metrics can be used to track the health of your functions as well a general usage patterns. See the Prometheus documentation and examples for more details about the available options and query functions. Below are several queries you might want to include in a basic Grafana dashboard for observing your OpenFaaS functions

Function invocation rate

Return the per-second rate of invocation as measured over the previous 20 seconds:

  1. rate ( gateway_function_invocation_total [20s])

Function replica count / scaling

Return the total function replicas:

  1. gateway_service_count

Total OK Function Invocation

Return the total number of successful function invocations:

  1. sum( gateway_function_invocation_total { code=\"200\"}

Function execution time

Return the average function execution time, as measure over the previous 20 seconds:

  1. (rate(gateway_functions_seconds_sum[20s]) / rate(gateway_functions_seconds_count[20s]))

Metrics for a single function

Each of the metrics generated by the Gateway are labeled with and can be filtered by the function name, For example The invocation rate for just a single function (e.g. if the function name is echo) is given by

  1. rate ( gateway_function_invocation_total{function_name='echo'} [20s])

Watchdog

The classic and of-watchdog both provide Prometheus instrumentation on TCP port 8081 on the path /metrics. This is to enable the use-case of HPAv2 from the Kubernetes ecosystem.

MetricTypeDescriptionLabels
http_request_duration_secondshistogramSeconds spent serving HTTP requestsmethod, path, status
http_requests_totalcounterThe total number of HTTP requestsmethod, path, status

The http_request* metrics record the latency and statistics of /system/* routes to monitor the OpenFaaS gateway and its provider. The /async-function route is also recorded in these metrics to observe asynchronous ingestion rate and latency.

Minimum watchdog versions

The metrics endpoint was added in the following versions and is enabled automatically.

  • watchdog: 0.13.0
  • of-watchdog 0.5.0