22 TimesTen Kubernetes Operator Metrics

There are several TimesTen Kubernetes Operator (TimesTen Operator) metrics that can be exposed and then published by Prometheus or some other scraper. These metrics include information about the functionality of the TimesTen Operator as well as the overall status of TimesTenClassic and TimesTenScaleout objects that the TimesTen Operator manages.

The following table details the TimesTen Operator metrics:

Table 22-1 TimesTen Operator Metrics

Metric Type Description

timesten_agent_tt_mem_usage

Gauge

Amount of memory used by the TimesTen Agent and TimesTen within a Pod. Reports the memory usage by each Pod as reported by Linux cgroups in the memory.usage_in_bytes value. Reports the value in bytes.

timesten_agent_rss

Gauge

Resident Set Size (rss) for the TimesTen Agent within each Pod running TimesTen. Reports the value as reported by the VmRSS field in the /proc/self/status file, which is managed by the Linux kernel for the TimesTen agent process within each tt container in each Pod that is running TimesTen. Reports the value in Kilobytes.

timesten_classic_state

Gauge

State of each TimesTenClassic object. The specific state is reported in the state label.

timesten_classic_state_allreplicasready

Gauge

Number of non-replicated TimesTenClassic objects in the AllReplicasReady state.

timesten_classic_state_noreplicasready

Gauge

Number of non-replicated TimesTenClassic objects in the NoReplicasReady state.

timesten_classic_state_normal

Gauge

Number of replicated TimesTenClassic objects in the Normal state.

timesten_classic_state_not_allreplicasready

Gauge

Number of non-replicated TimesTenClassic objects in states other than AllReplicasReady or Initializing.

timesten_classic_state_not_normal

Gauge

Number of replicated TimesTenClassic objects in states other than Normal or Initializing.

timesten_classic_state_somereplicasready

Gauge

Number of non-replicated TimesTenClassic objects in the SomeReplicasReady state.

timesten_pods_deleted_unschedulable

Gauge

Total count of Pods that the TimesTen Operator has deleted. The value increases each time a Pod is deleted.

For more information, see the deleteDbOnNotReadyNode datum in Table 20-3.

timesten_pods_unschedulable

Gauge

Number of Pods that are not currently scheduled by Kubernetes. The value increases and decreases over time.

timesten_pvcs_deleted_unschedulable

Gauge

Total count of PVCs that the TimesTen Operator has deleted. The value increases each time a PVC is deleted.

For more information, see the deleteDbOnNotReadyNode datum in Table 20-3.

timesten_scaleout_state

Gauge

State of each TimesTenScaleout object. The specific state is reported in the state label.

timesten_scaleout_state_normal

Gauge

Number of TimesTenScaleout objects in the Normal state.

timesten_scaleout_state_not_normal

Gauge

Number of TimesTenScaleout objects in states other than Normal or Initializing.

timesten_operator_mem_usage

Gauge

Amount of memory used by the TimesTen Kubernetes Operator. Reports the memory usage by the TimesTen Operator Pod as reported by Linux cgroups in the memory.usage_in_bytes value. Reports the value in bytes.

timesten_operator_rss

Gauge

Resident Set Size (rss) for the TimesTen Kubernetes Operator. Reports the value as reported by the VmRSS field in the /proc/self/status file, which is managed by the Linux kernel for the TimesTen Kubernetes Operator process. Reports the value in Kilobytes.

Each metric has these labels:
  • namespace: The namespace of the TimesTen object that the metric describes.

  • name:
    • For the timesten_operator_mem_usage and timesten_operator_rss metrics, the name label is the name of the TimesTen Operator Pod.

    • For the timesten_agent_tt_mem_usage and timesten_agent_rss metrics, the name label is the name of the TimesTen Pod.

    • For all other metrics, the name label is the name of the TimesTen object that the metric describes.

In addition there are several other labels of secondary importance:
  • container: The name of the container that generated the metric. For example, timesten-operator.

  • endpoint: The name of the endpoint that the metric came from. For example, metrics.

  • instance: The IP address and port of the TimesTen Operator Pod that generated the metric. For example, 10.244.1.111:8080

  • job: The name of the job. For example, timesten-operator.

  • pod: The name of the TimesTen Operator Pod that generated the metric. For example, timesten-operator-5f4f4c69f6-z9h2k.

  • service. The name of the Service. For example, timesten-operator.

Here is an example of a sample timesten_classic_state_normal metric:
timesten_classic_state_normal{container="timesten-operator", 
endpoint="metrics", instance="10.244.1.111:8080", job="timesten-operator", 
name="sample", namespace="mynamespace", pod="timesten-operator-5f4f4c69f6-z9h2k", 
service="timesten-operator"}

The metric has a value of 1 or 0, depending on whether the TimesTenClassic object (sample, in this case) is healthy or not.

Here is an example of a sample timesten_classic_state metric:
timesten_classic_state{container="timesten-operator", 
endpoint="metrics", instance="10.244.1.111:8080", job="timesten-operator", 
name="sample", namespace="mynamespace", pod="timesten-operator-5f4f4c69f6-z9h2k", 
service="timesten-operator", state="Normal"}

The metric has a value of 1 or 0, depending on whether the TimesTenClassic object (sample, in this case) is in the Normal state or not.

For details on how the TimesTen Operator exposes metrics, see Expose Metrics from the TimesTen Kubernetes Operator.

Note:

The TimesTen Operator automatically exposes many other additional metrics. We cannot guarantee these additional metrics will exist from release to release. In addition, these metrics may not be specifically pertinent or useful for the TimesTen Operator.