Okteto Insights
Okteto inherently generates a lot of data from developers using the platform. This includes product usage and behavior data such as developer usage, as well as infrastructure utilization and performance data like infrastructure and platform activities.
Okteto Insights makes this data available to admin
users via API endpoints that can be scraped using Prometheus. This provides a way for Okteto administrators to obtain and consume this data programmatically.
This feature is disabled
by default. To enable
it you will need to set the helm setting insights.enabled
to true
and upgrade your Okteto instance. If you are an Okteto SaaS user, please reach out to your support contact to turn this feature on.
How to consume Okteto Insights data
Once you enable the feature, Okteto will create a new endpoint accessible through https://okteto.SUBDOMAIN/metrics
where data will be available in Prometheus format. This new endpoint is protected with a bearer token which is auto-generated by Okteto. Alternatively, you can specify your own token using the secret defined in this helm setting.
To retrieve your Insights bearer token from the Okteto Admin UI, navigate to Admin
-> General
and scroll to the Settings
section. You can copy your bearer token by clicking on the Show Insights Token
button in the Insights panel.
Next you'll need to configure a scraper to connect to this endpoint using the proper token. An example of a Prometheus scraper configuration is:
- job_name: "okteto_scrapper"
scrape_interval: 5m
scheme: http
static_configs:
- targets: ["okteto.<SUBDOMAIN>:443"] # replace <SUBDOMAIN> with your Okteto subdomain
authorization:
type: Bearer
credentials: <bearer-token> # replace <bearer-token> with the token generated by Okteto
Okteto does not provide a Prometheus instance or storage for this data. You must deploy your own Prometheus instance (or other collector platform) to consume this data and manage counters and metrics restart with the functions Prometheus provides.
What data is available
All metrics provided by Okteto will have the prefix okteto_
Okteto will progressively make more data available through this endpoint. The following metrics are available today:
Node Metrics
Metric Name | Type | Description | Labels |
---|---|---|---|
okteto_system_node | gauge | This metric represents the number of nodes running Okteto. | none |
okteto_system_node_memory_bytes | gauge | This metric represents the total memory (in bytes) available for allocating to a node. | node_name |
okteto_system_node_memory_requested_bytes | gauge | This metric represents the total memory (in bytes) requested for a node. | node_name |
okteto_system_node_memory_usage_bytes | gauge | This metric represents the total memory (in bytes) in use for a node. | node_name |
okteto_system_node_cpu_cores | gauge | This metric represents the total CPU cores available for allocating to a node. | node_name |
okteto_system_node_cpu_requested_cores | gauge | This metric represents the total CPU cores requested for a node. | node_name |
okteto_system_node_cpu_usage_cores | gauge | This metric represents the total CPU cores in use for a node. | node_name |
- Node Metrics label definitions:
node_name
: Contains the name of the node represented
Pod Metrics
Metric Name | Type | Description | Labels |
---|---|---|---|
okteto_system_pod_container_cpu_requests_cores | gauge | This metric represents the total CPU requested of a pod and standard container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_container_cpu_limits_cores | gauge | This metric represents the CPU limits of a specific pod and standard container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_init_container_cpu_requests_cores | gauge | This metric represents the CPU requests of a specific pod and init container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_init_container_cpu_limits_cores | gauge | This metric represents the CPU limits of a specific pod and init container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_container_cpu_usage_cores | gauge | This metric represents the CPU usage of a specific pod and standard container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_container_memory_requests_bytes | gauge | This metric represents the memory requested for a specific pod and standard container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_container_memory_limits_bytes | gauge | This metric represents the memory limits for a specific pod and standard container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_init_container_memory_requests_bytes | gauge | This metric represents the memory requested for a specific pod and init container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_init_container_memory_limits_bytes | gauge | This metric represents the memory limits for a specific pod and init container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
okteto_system_pod_container_memory_usage_bytes | gauge | This metric represents the memory usage of a specific pod and standard container at that point in time. | container_name , pod_name , namespace , node_name , devenv_name , pod_type , controller_type , controller_name |
- Pod Metrics label definitions:
container_name
: Contains the name of the container being representedpod_name
: Contains the name of the pod being representednamespace
: Contains the namespace namenode_name
: Contains the node namedevenv_name
: If defined, this represents the name of the deployed development environment it is linked topod_type
: It determines if the pod is in development mode or not, values can bedevelopment
orstandard
controller_type
: Represents the type of the top controller that created the pod, values can bedeployment
orstatefulset
controller_name
: Contains the name of the top controller that created the pod
Build Metrics
Only successful builds are tracked with okteto_usage_build_duration_seconds
.
Metric Name | Type | Description | Labels |
---|---|---|---|
okteto_usage_build_duration_seconds | histogram | This represents metrics related to build times of the images that are being built within Okteto. Currently this will only show builds that have successfully completed. | devenv_name , image_name , namespace , repository |
okteto_usage_build_result | counter | This represents metrics related to the result of the builds that are being built within Okteto. | devenv_name , image_name , namespace , repository , result |
- Build Metrics label definitions:
devenv_name
: If defined, this represents the name of the deployed development environment it is linked toimage_name
: Represents the name of the image to be built as it appears in the Okteto Manifestnamespace
: Contains the okteto cli context from where the request originatedrepository
: Contains the git repository where the okteto manifest that defines this image is hostedresult
:success
,failed
orskipped
represent the status of the image
Deploy Metrics
Only successful deployments are tracked with okteto_usage_deploy_duration_seconds
.
Metric Name | Type | Description | Labels |
---|---|---|---|
okteto_usage_deploy_duration_seconds | histogram | This represents metrics related to the time it takes to deploy a development environment. Currently this will only show deployments that have successfully completed. | devenv_name , namespace , repository , phase |
okteto_usage_deploy_result | counter | This represents metrics related to the result of the deployment of a development environment. | devenv_name , namespace , repository , result |
- Deploy Metrics label definitions:
devenv_name
: Represents the name of the deployed development environmentnamespace
: Contains the okteto cli context from where the request originatedrepository
: Contains the git repository where the okteto manifest that defines this development environment is hostedphase
: Represents the phase of the deployment (eithercompose
orcommands
) for which the time series is being recorded.compose
refers to the Compose section, andcommands
refers to the Commands section of the Okteto manifest's Deploy section, indicating how long it took to complete. Summing the time series would represent the total length of a Deploy action.result
: Can besuccess
orfailure
to represent the status of the deployment
Namespace Metrics
Metric Name | Type | Description | Labels |
---|---|---|---|
okteto_system_namespace_status_condition | gauge | This metric represents the status of a namespace. Preview namespaces are not included here. | namespace , condition , owner_id |
okteto_system_namespace_created_time | gauge | This metric represents the creation time of a namespace. | namespace , owner_id |
- Namespace Metrics label definitions:
namespace
: Contains the namespace namecondition
: Represents the condition of the namespace, values can beactive
orsleeping
owner_id
: Represents the owner ID of the namespace
Preview Metrics
Metric Name | Type | Description | Labels |
---|---|---|---|
okteto_system_preview_status_condition | gauge | This metric represents the status of a preview. | namespace , condition , scope , owner_id |
okteto_system_preview_created_time | gauge | This metric represents the creation time of a preview. | namespace , scope , owner_id |
- Preview Metrics label definitions:
namespace
: Contains the namespace namecondition
: Represents the condition of the preview, values can beactive
orsleeping
scope
: Represents the scope of the preview, values can bepersonal
orglobal
owner_id
: Represents the owner ID of the preview
User Metrics
Metric Name | Type | Description | Labels |
---|---|---|---|
okteto_system_user_last_seen_time | gauge | This metric represents the last activity of a user. | id , external_id , role |
- User Metrics label definitions:
id
: Contains the user idexternal_id
: The external id of the userrole
: The role of the user