> For the complete documentation index, see [llms.txt](https://docs.akamas.io/insights/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.akamas.io/insights/connecting-your-data/datasources/instana.md).

# Instana

IBM Instana Observability is a cloud-based solution providing automated, AI-powered observability with simplicity at its core for DevOps and engineering teams.

## Requirements

Before connecting Instana to Akamas Vivo, ensure you have:

### Required Credentials

* **Endpoint URL**: Your Instana environment URL in the format `https://{yourUnit-yourTenant}.instana.io` ;
* **API Token**: An Instana API token. We need the base API token, so you don't have to provide any additional permissions among the ones prompted when creating the token.

{% hint style="info" %}
You can obtain this information from the following references:

* <https://www.ibm.com/docs/en/instana-observability/1.0.316?topic=instana-rest-api-sdks>
  {% endhint %}

## Metric Sources Prerequisites

Akamas Vivo collects Kubernetes and application runtime metrics from your Instana endpoint. Once you install the Instana agent most of the sensors Akamas Vivo needs are automatically instrumented based on yout infrastructure.&#x20;

{% hint style="info" %}
To learn more on how Instana monitors the techonologies in your cliuster your can see the [official documentation](https://www.ibm.com/docs/en/instana-observability/standard/1.0.323?topic=configuring-monitoring-supported-technologies)
{% endhint %}

### Manually Instrumented Tracers

To optimize certain technologies on your cluster the Instana agent needs special instrumentation for each of them.

Ensure the following components are deployed and configured in your installation if you are interested in receiving optimizations for them, otherwise Vivo keeps working normally but you will not see these technology-specific recommendations.

* [NodeJS](https://www.ibm.com/docs/en/instana-observability/standard/1.0.323?topic=technologies-monitoring-nodejs)

### Horizontal Pod Autoscaler

Akamas Vivo provides HPA specific optimizations based on the configured parameters for each of the HPAs you deploy on your cluster.&#x20;

To make sure you have the best HPA recommendation make sure the manifests used to configure each autoscalers are visible to the API. You can test this by running the following series of commands.

First list all the HPAs Instana is monitoring:

```shellscript
curl -X GET 'https://UNIT-TENANT.instana.io/api/infrastructure-monitoring/snapshots/?plugin=kubernetesHorizontalPodAutoscaler' \
  --header 'Accept: application/json' \
  --header 'Authorization: apiToken TOKEN'
```

Then copy one of the returned `snapshotId` and use it in this command to get details about it:

```shellscript
curl -X GET 'https://UNIT-TENANT.instana.io/api/infrastructure-monitoring/snapshots/SNAPSHOTID \
  --header 'Accept: application/json' \
  --header 'Authorization: apiToken TOKEN'
```

As part of the body of the last request verify that `data.annotations.kubectl.kubernetes.io/last-applied-configuration` is populated and displays the targeted resources.

#### Examples

Valid configurations are:

```json
"annotations": {
    "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"autoscaling/v2\",\"kind\":\"HorizontalPodAutoscaler\",\"metadata\":{\"annotations\":{},\"name\":\"avgvalue-test\",\"namespace\":\"instana-test\"},\"spec\":{\"maxReplicas\":1,\"metrics\":[{\"resource\":{\"name\":\"cpu\",\"target\":{\"averageValue\":\"280m\",\"type\":\"AverageValue\"}},\"type\":\"Resource\"},{\"resource\":{\"name\":\"memory\",\"target\":{\"averageValue\":\"512Mi\",\"type\":\"AverageValue\"}},\"type\":\"Resource\"}],\"minReplicas\":1,\"scaleTargetRef\":{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"name\":\"avgvalue-test\"}}}\n"
}
```

for an HPA that scales on **absolute values** and

```json
"annotations": {
   "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"autoscaling/v2\",\"kind\":\"HorizontalPodAutoscaler\",\"metadata\":{\"annotations\":{\"argocd.argoproj.io/tracking-id\":\"thanos:autoscaling/HorizontalPodAutoscaler:monitoring/thanos-query\"},\"labels\":{\"app.kubernetes.io/component\":\"query\",\"app.kubernetes.io/instance\":\"thanos\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"thanos\",\"app.kubernetes.io/version\":\"0.39.2\",\"helm.sh/chart\":\"thanos-17.2.6\"},\"name\":\"thanos-query\",\"namespace\":\"monitoring\"},\"spec\":{\"maxReplicas\":5,\"metrics\":[{\"resource\":{\"name\":\"memory\",\"target\":{\"averageUtilization\":80,\"type\":\"Utilization\"}},\"type\":\"Resource\"},{\"resource\":{\"name\":\"cpu\",\"target\":{\"averageUtilization\":70,\"type\":\"Utilization\"}},\"type\":\"Resource\"}],\"minReplicas\":2,\"scaleTargetRef\":{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"name\":\"thanos-query\"}}}\n"
}
```

for an HPA that scales on **relative values**.

{% hint style="warning" %}
For HPAs where Akamas Vivo cannot access the `last-applied-configuration` only partial recommendations are provided.
{% endhint %}

## Configuration

<figure><img src="https://987903283-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAxUCNi77PcMdZAmajVK6%2Fuploads%2FUQKixbOJST9pajpg87eR%2FScreenshot%202026-04-16%20105823.png?alt=media&amp;token=d1e0d869-77cd-42d7-a9e8-691e0ace90d2" alt=""><figcaption></figcaption></figure>

To connect Akamas Vivo to Instana:

* **Endpoint URL**: Enter your Instana environment URL
  * Format: `https://{yourUnit-yourTenant}.instana.io`
* **API Token**: Provide an Instana API token as described above
* **Test Connection**: Click the test button to verify the configuration
* **Save**: Once the test succeeds, save the data source

## Data Import Settings

When creating a new import, you can configure advanced settings to optimize data extraction and tailor it to your needs. Available options:

* **Time resolution**: The resolution of the data (choosing between several options from 1 second to 1 hour);
* **Import scope**: The scope of data to import. There are 2 options:
  * **Complete**, includes all infrastructure layers;
  * **Infrastructure,** focuses only on cluster and node data.
* **Retries**: Number of retry attempts for failed API requests (default: 3). Increase this value if you experience intermittent connectivity issues.
