### Get Custom Dashboards Source: https://context7.com/instana/openapi/llms.txt Retrieves custom dashboards for visualization. This example searches for dashboards containing 'BeeInstana' and limits the results to 10 per page. ```bash curl --request GET \ --url 'https://{unit}-{tenant}.instana.io/api/custom-dashboard?query=BeeInstana&pageSize=10&page=1' \ --header 'authorization: apiToken YOUR_API_TOKEN' ``` -------------------------------- ### Get Website Beacon Groups Source: https://context7.com/instana/openapi/llms.txt Retrieves grouped website monitoring beacon metrics for end-user monitoring analysis. This example filters beacons by website name and path. ```bash curl --request POST \ --url 'https://{unit}-{tenant}.instana.io/api/website-monitoring/analyze/beacon-groups?fillTimeSeries=true' \ --header 'authorization: apiToken YOUR_API_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ \ "metrics": [{"metric": "beaconCount", "aggregation": "SUM", "granularity": 60}], \ "group": {"groupByTag": "beacon.page.name"}, \ "tagFilterExpression": { \ "type": "EXPRESSION", \ "logicalOperator": "AND", \ "elements": [ \ {"type": "TAG_FILTER", "name": "beacon.website.name", "operator": "EQUALS", "entity": "NOT_APPLICABLE", "value": "robot-shop"}, \ {"type": "TAG_FILTER", "name": "beacon.location.path", "operator": "EQUALS", "entity": "NOT_APPLICABLE", "value": "/checkout"} \ ] \ }, \ "timeFrame": {"windowSize": 3600000}, \ "type": "PAGELOAD" \ }' ``` -------------------------------- ### GET /api/application-monitoring/services Source: https://context7.com/instana/openapi/llms.txt Retrieves a list of monitored services within the tenant. ```APIDOC ## Get Services Retrieves a list of monitored services within the tenant. ### Method GET ### Endpoint /api/application-monitoring/services ### Query Parameters - **nameFilter** (string) - Optional - Filters services by name. - **pageSize** (integer) - Optional - The number of items to return per page. - **includeSnapshotIds** (boolean) - Optional - Whether to include snapshot IDs in the response. ### Request Example ```bash curl --request GET \ --url 'https://{unit}-{tenant}.instana.io/api/application-monitoring/services?nameFilter=payment&pageSize=10&includeSnapshotIds=true' \ --header 'authorization: apiToken YOUR_API_TOKEN' ``` ### Response #### Success Response (200) - **items** (array) - List of monitored services. - **entityType** (string) - The type of the entity (e.g., "SERVICE"). - **id** (string) - The unique identifier of the service. - **label** (string) - The name of the service. - **snapshotIds** (array) - List of snapshot IDs associated with the service. - **technologies** (array) - List of technologies used by the service. - **types** (array) - List of types of the service. - **page** (integer) - The current page number. - **pageSize** (integer) - The number of items per page. - **totalHits** (integer) - The total number of services found. #### Response Example ```json { "items": [ { "entityType": "SERVICE", "id": "79f1430f4a42a707a97621ca00617e40bd51c31d", "label": "Robot Shop", "snapshotIds": ["CywiRxmGIwtQIKezVs-XMcTX2xg"], "technologies": ["kafkaCluster"], "types": ["MESSAGING"] } ], "page": 1, "pageSize": 10, "totalHits": 1 } ``` ``` -------------------------------- ### Create Maintenance Window Source: https://context7.com/instana/openapi/llms.txt Creates a maintenance configuration to suppress alerts during scheduled maintenance. This example sets up a recurring weekly maintenance window. ```bash curl --request POST \ --url 'https://{unit}-{tenant}.instana.io/api/settings/v2/maintenance' \ --header 'authorization: apiToken YOUR_API_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ \ "name": "Weekly Maintenance", \ "query": "entity.host.name:production-db-*", \ "scheduling": { \ "start": 1698949644924, \ "duration": {"amount": 2, "unit": "HOURS"}, \ "rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=SU;COUNT=52", \ "timezoneId": "America/New_York", \ "type": "RECURRENT" \ }, \ "tagFilterExpression": { \ "type": "TAG_FILTER", \ "name": "host.name", \ "operator": "CONTAINS", \ "value": "production" \ }, \ "tagFilterExpressionEnabled": true, \ "retriggerOpenAlertsEnabled": true \ }' ``` -------------------------------- ### Get All Users - Instana API Source: https://context7.com/instana/openapi/llms.txt Retrieves a list of all users with tenant access. Requires an API token for authentication. ```bash # Get all users curl --request GET \ --url 'https://{unit}-{tenant}.instana.io/api/settings/users' \ --header 'authorization: apiToken YOUR_API_TOKEN' ``` -------------------------------- ### GET /plugins/{plugin}/metrics Source: https://github.com/instana/openapi/blob/master/spec/descriptions/getInfrastructureCatalogMetrics.md Retrieves all available metric definitions for a specified plugin. ```APIDOC ## GET /plugins/{plugin}/metrics ### Description This endpoint retrieves all available metric definitions of the requested plugin. ### Method GET ### Endpoint /plugins/{plugin}/metrics ### Parameters #### Path Parameters - **plugin** (string) - Required - The plugin id from [available plugins](#operation/getInfrastructureCatalogPlugins) #### Query Parameters - **filter** (string) - Optional - You can restrict the returned metric definitions by passing a filter. Possible values: `custom`, `builtin`. ``` -------------------------------- ### Example Grouping by Custom Property Source: https://github.com/instana/openapi/blob/master/spec/descriptions/tagSyntheticMetrics.md Demonstrates how to group synthetic test results by a custom property 'region' using the 'synthetic.tags' metric. ```json { "groups": [ { "groupbyTag": "synthetic.tags", "groupbyTagSecondLevelTag": "region" } ] } ``` -------------------------------- ### Get Synthetic Test Results Source: https://context7.com/instana/openapi/llms.txt Retrieves playback results for synthetic tests. Ensure you replace placeholders like {unit}, {tenant}, and YOUR_API_TOKEN. ```bash curl --request GET \ --url 'https://{unit}-{tenant}.instana.io/api/synthetics/results?syntheticId=K331gkuCbelN1HI5y1wl&windowSize=3600000' \ --header 'authorization: apiToken YOUR_API_TOKEN' ``` -------------------------------- ### Instana Go Client: Read Application Tags Source: https://github.com/instana/openapi/blob/master/spec/descriptions/info.md Example Go code demonstrating how to use the generated Instana client to fetch application monitoring tags. Requires an API key and configuration of the Instana host and base path. ```go import instana "./pkg/instana/openapi" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = "tenant-unit.instana.io" configuration.BasePath = "https://tenant-unit.instana.io" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: "apiToken", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf("Error calling the API, aborting.") } for _, tag := range tags { fmt.Printf("%s (%s): %s\n", tag.Category, tag.Type, tag.Name) } } ``` -------------------------------- ### Specific Selection of Services and Endpoints Source: https://github.com/instana/openapi/blob/master/spec/descriptions/tagApplicationAlertConfiguration.md This example demonstrates how to create a specific selection of services and endpoints within an application, including exclusions. Leaf nodes default to true if 'inclusive' is not defined. ```json { "applications": { "": { "applicationId": "", "inclusive": false, "services": { "": { "serviceId": "" }, "": { "serviceId": "", "inclusive": true, "endpoints": { "": { "endpointId": "", "inclusive": false } } }, "": { "serviceId": "", "inclusive": false, "endpoints": { "": { "endpointId": "", "inclusive": true } } } } } } } ``` -------------------------------- ### Generate Go REST API Client Source: https://github.com/instana/openapi/blob/master/spec/descriptions/info.md This bash script demonstrates how to generate a client library for Go to interact with the Instana backend using OpenAPI client generators. Ensure environment variables for tenant and unit names are set. ```bash #!/bin/bash ``` -------------------------------- ### Get Mean Synthetic Response Time Grouped by Application ID Source: https://github.com/instana/openapi/blob/master/spec/descriptions/tagSyntheticMetrics.md Sample payload to retrieve the average synthetic response time, grouped by application ID. It uses the same time frame as the previous example. ```json { "metrics": [ { "aggregation": "MEAN", "metric": "synthetic.metricsResponseTime" }], "timeFrame": { "to": 0, "windowSize": 1800000 }, "groups": [{ "groupbyTag": "synthetic.applicationId" }] } ``` -------------------------------- ### Generate Go Client Library Source: https://github.com/instana/openapi/blob/master/spec/descriptions/info.md Generates a Go client library from the Instana OpenAPI specification. The generated code is placed in 'pkg/instana/openapi'. Use '--skip-validate-spec' to bypass specification validation. ```bash java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \ -o pkg/instana/openapi \ --skip-validate-spec ``` -------------------------------- ### Instana API Tag Filter Example Source: https://github.com/instana/openapi/blob/master/spec/descriptions/tagSyntheticResults.md Example of how to specify a custom property by its key and value within tagFilters. This is useful for filtering results based on specific tags. ```json { "tagFilters":[ { "name":"synthetic.tags", "key":"location", "value":"Denver", "operator":"EQUALS" } ] ``` -------------------------------- ### GET /api-keys Source: https://github.com/instana/openapi/blob/master/spec/README.md Retrieves a list of API keys. ```APIDOC ## GET /api-keys ### Description Retrieve a list of api keys. ### Method GET ### Endpoint /api-keys ### Parameters ### Request Body ### Response #### Success Response (200) - **Rate-Limit-Limit** (integer) - The number of allowed requests in the current period #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### POST /api/application-monitoring/settings/application Source: https://context7.com/instana/openapi/llms.txt Creates a new Application Perspective with tag filter expressions. ```APIDOC ## POST /api/application-monitoring/settings/application ### Description Creates a new Application Perspective with tag filter expressions. ### Method POST ### Endpoint `https://{unit}-{tenant}.instana.io/api/application-monitoring/settings/application` ### Parameters #### Request Body - **label** (string) - Required - The name of the application perspective. - **boundaryScope** (string) - Required - The boundary scope (e.g., "INBOUND"). - **scope** (string) - Required - The scope of the application perspective (e.g., "INCLUDE_IMMEDIATE_DOWNSTREAM_DATABASE_AND_MESSAGING"). - **tagFilterExpression** (object) - Required - The tag filter expression to define the application's scope. - **type** (string) - Required - Must be "EXPRESSION". - **logicalOperator** (string) - Required - The logical operator (e.g., "AND"). - **elements** (array) - Required - An array of tag filter elements. - **type** (string) - Required - Must be "TAG_FILTER". - **name** (string) - Required - The name of the tag. - **key** (string) - Optional - The key of the tag. - **value** (string) - Required - The value of the tag. - **operator** (string) - Required - The comparison operator (e.g., "EQUALS"). - **entity** (string) - Required - The entity for the tag filter. - **accessRules** (array) - Optional - Access rules for the application perspective. - **accessType** (string) - Required - The type of access (e.g., "READ_WRITE"). - **relationType** (string) - Required - The type of relation (e.g., "GLOBAL"). ### Request Example ```json { "label": "Production Services", "boundaryScope": "INBOUND", "scope": "INCLUDE_IMMEDIATE_DOWNSTREAM_DATABASE_AND_MESSAGING", "tagFilterExpression": { "type": "EXPRESSION", "logicalOperator": "AND", "elements": [ {"type": "TAG_FILTER", "name": "kubernetes.label", "key": "env", "value": "production", "operator": "EQUALS", "entity": "DESTINATION"}, {"type": "TAG_FILTER", "name": "kubernetes.namespace.name", "value": "default", "operator": "EQUALS", "entity": "DESTINATION"} ] }, "accessRules": [{"accessType": "READ_WRITE", "relationType": "GLOBAL"}] } ``` ### Response #### Success Response (200) - **id** (string) - The ID of the created application perspective. - **label** (string) - The name of the application perspective. - ... (other fields may be returned) ``` -------------------------------- ### Create Custom Event Specification - Entity Verification Rule Source: https://github.com/instana/openapi/blob/master/spec/descriptions/postCustomEventSpecification.md This example shows how to create a custom event that verifies entity properties. Specify the `matchingEntityType`, `matchingOperator`, and `matchingEntityLabel` for precise matching. ```bash curl --request POST 'https:///api/events/settings/event-specifications/custom' \ --header 'Authorization: apiToken ' \ --header 'Content-Type: application/json' \ --data-raw '{ "description":"Event for OpenAPI Entity Verification Rule", "enabled":true,"entityType":"host","expirationTime":"60000", "name":"Event for OpenAPI Entity Verification Rule", "rules":[{"matchingEntityLabel":"test", "matchingEntityType":"jvmRuntimePlatform","matchingOperator":"startsWith","offlineDuration":1800000, "ruleType":"entity_verification","severity": 5}], "triggering":false }' ``` -------------------------------- ### Get Release API Source: https://github.com/instana/openapi/blob/master/spec/descriptions/tagReleases.md Fetches details of a specific release by its ID. ```APIDOC ## GET /api/releases/{releaseId} ### Description Retrieves information about a specific release. ### Method GET ### Endpoint /api/releases/{releaseId} ### Parameters #### Path Parameters - **releaseId** (string) - Required - The ID of the release to retrieve. ### Response #### Success Response (200) - **releaseId** (string) - The ID of the release. - **name** (string) - The name of the release. - **start** (string) - The start time of the release. - **scope** (string) - The scope of the release (e.g., Global, Application Perspective, Service). - **applications** (array) - List of associated applications. - **services** (array) - List of associated services. #### Response Example ```json { "releaseId": "rel-12345", "name": "My Release", "start": "2023-10-27T10:00:00Z", "scope": "Global", "applications": [], "services": [] } ``` ``` -------------------------------- ### GET /api/kubernetes/info/events Source: https://github.com/instana/openapi/blob/master/spec/descriptions/kubernetesInfoEvents.md Retrieves all Kubernetes info events for the requested timeframe. ```APIDOC ## GET /api/kubernetes/info/events ### Description This endpoint retrieves all kubernetes info events for the requested timeframe. ### Method GET ### Endpoint /api/kubernetes/info/events ### Parameters #### Query Parameters - **to** (timestamp) - Optional - The end of the requested timeframe as a Unix timestamp. The current service time is used as a default if not provided. It is recommended to fetch historical events with a delay using a `to` timestamp in the past due to eventual consistency. It can take up to 2 minutes in some cases until an event update is reflected in the results. - **windowSize** (milliseconds) - Optional - The size of the requested timeframe in milliseconds relative to `to`. If neither `windowSize` nor `from` is provided, then a default windowSize of 10 minutes is used. - **from** (timestamp) - Optional - As an alternative to defining the `windowSize`, the `from` query parameter can be used, which spans the timeframe in range `[from, to)`. - **excludeTriggeredBefore** (boolean) - Optional - Whether to exclude events that have been triggered before the requested timeframe in order to enable searching for events that have started within the given timeframe, excluding events that are previously active already. This is useful for 3rd party integrations that fetch events from Instana with a scheduled batch job in a fixed interval using tumbling windows, when you only care about new events. This option is more restrictive than `filterEventUpdates` and does not inform about event state updates that got `CLOSED` in the timeframe of the query if not also the start time of the event is within that query timeframe. - **filterEventUpdates** (boolean) - Optional - Filters results to event updates only. This means that an event is only included when its event state changed in the given query timeframe. This is useful for 3rd party integrations that fetch events from Instana with a scheduled batch job in a fixed interval using a tumbling windows, when you care about event state updates. ### Response #### Success Response (200) - **events** (array) - A list of Kubernetes info events. - **event_id** (string) - The unique identifier for the event. - **timestamp** (timestamp) - The time the event occurred. - **type** (string) - The type of the event (e.g., "INFO", "WARNING", "ERROR"). - **message** (string) - A description of the event. - **resource_type** (string) - The type of Kubernetes resource the event is related to. - **resource_name** (string) - The name of the Kubernetes resource. - **namespace** (string) - The namespace of the Kubernetes resource. #### Response Example ```json { "events": [ { "event_id": "evt_abc123", "timestamp": 1678886400000, "type": "INFO", "message": "Pod created successfully", "resource_type": "Pod", "resource_name": "my-pod-12345", "namespace": "default" } ] } ``` ``` -------------------------------- ### GET /api/synthetics/settings/tests Source: https://github.com/instana/openapi/blob/master/spec/descriptions/getSyntheticTests.md Retrieves Synthetic Tests with optional filtering capabilities. ```APIDOC ## GET /api/synthetics/settings/tests ### Description This endpoint retrieves Synthetic Tests. It supports optional query parameters for filtering the results. ### Method GET ### Endpoint /api/synthetics/settings/tests ### Parameters #### Query Parameters - **locationId** (string) - Optional - Filters the Synthetic Tests to retrieve only the ones that are associated to the specified PoP location ID. - **filter** (string) - Optional - Filters the Synthetic Tests to retrieve only the ones that match the specified filter condition. Users are allowed to specify more than one filter parameter, and they will be combined in a single expression using logical operator 'AND'. The filter parameter is formatted as '**_{_**'. For example, '_{label=MyTest}_'. Supported filter attributes and operators: | Attribute | = | != | > | < | >= | <= | Example | |-|---|----|---|---|---|---|---------| | label | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={label=ABC} | | description | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={description=MyTest} | | active | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={active=true} | | testFrequency | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={testFrequency=5} | | applicationId | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={applicationId=APP_ID} | | locations | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={locations=POP_ID} | | locationLabels | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={locationLabels=MyPoP} | | locationDisplayLabels | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={locationDisplayLabels=My PoP} | | configuration. | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={configurtion.syntheticType=HTTPAction} | | customProperties. | ✓ | ✓ | - | - | - | - | /api/synthetics/settings/tests?filter={customProperty.usage=Test} | | createdAt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | /api/synthetics/settings/tests?filter={createdAt>1715190462000} | | modifiedAt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | /api/synthetics/settings/tests?filter={modifiedAt<=1715190462000} | ### Response #### Success Response (200) - **tests** (array) - A list of Synthetic Test objects. - **id** (string) - The unique identifier for the synthetic test. - **name** (string) - The name of the synthetic test. - **description** (string) - A description of the synthetic test. - **active** (boolean) - Indicates if the synthetic test is currently active. - **testFrequency** (integer) - The frequency in seconds at which the test is run. - **locationIds** (array of strings) - A list of location IDs where the test is deployed. - **createdAt** (integer) - Timestamp when the test was created. - **modifiedAt** (integer) - Timestamp when the test was last modified. - **configuration** (object) - Configuration details specific to the test type. - **customProperties** (object) - Custom properties associated with the test. #### Response Example { "tests": [ { "id": "test-123", "name": "My HTTP Test", "description": "Tests the main website homepage.", "active": true, "testFrequency": 300, "locationIds": ["pop-us-east-1", "pop-eu-west-1"], "createdAt": 1678886400000, "modifiedAt": 1678886400000, "configuration": { "syntheticType": "HTTPAction", "url": "https://example.com" }, "customProperties": { "environment": "production" } } ] } ``` -------------------------------- ### GET /api/events/agent Source: https://github.com/instana/openapi/blob/master/spec/descriptions/agentMonitoringEvents.md Retrieves all agent monitoring events for the requested timeframe. ```APIDOC ## GET /api/events/agent ### Description This endpoint retrieves all agent monitoring events for the requested timeframe. ### Method GET ### Endpoint /api/events/agent ### Query Parameters #### Query Parameters - **to** (integer) - Optional - The end of the requested timeframe as a Unix timestamp. The current service time is used as a default if not provided. Please note that it is recommended to fetch historical events with a delay using a `to` timestamp in the past due to eventual consistency. It can take up to **2 minutes** in some cases until an event update is reflected in the results. - **windowSize** (integer) - Optional - The size of the requested timeframe in milliseconds relative to `to`. If neither `windowSize` nor `from` is provided, then a default windowSize of *10 minutes* is used. - **from** (integer) - Optional - As an alternative to defining the `windowSize`, the `from` query parameter can be used, which spans the timeframe in range `[from, to)`. - **excludeTriggeredBefore** (boolean) - Optional - Whether to exclude events that have been triggered before the requested timeframe in order to enable searching for events that have started within the given timeframe, excluding events that are previously active already. This is useful for 3rd party integrations that fetch events from Instana with a scheduled batch job in a fixed interval using tumbling windows, when you only care about new events. This option is more restrictive than `filterEventUpdates` and does not inform about event state updates that got `CLOSED` in the timeframe of the query if not also the start time of the event is within that query timeframe. - **filterEventUpdates** (boolean) - Optional - Filters results to event updates only. This means that an event is only included when its event state changed in the given query timeframe. This is useful for 3rd party integrations that fetch events from Instana with a scheduled batch job in a fixed interval using a tumbling windows, when you care about event state updates. ### Response #### Success Response (200) - **events** (array) - A list of agent monitoring events. - **id** (string) - The unique identifier of the event. - **timestamp** (integer) - The timestamp when the event occurred. - **type** (string) - The type of the event. - **severity** (string) - The severity level of the event. - **message** (string) - A descriptive message for the event. - **entityId** (string) - The identifier of the entity associated with the event. - **entityType** (string) - The type of the entity associated with the event. #### Response Example ```json { "events": [ { "id": "event-123", "timestamp": 1678886400000, "type": "agent-issue", "severity": "critical", "message": "Agent disconnected", "entityId": "agent-abc", "entityType": "agent" } ] } ``` ``` -------------------------------- ### Default TimeFrame Configuration Source: https://github.com/instana/openapi/blob/master/spec/descriptions/tagSyntheticMetrics.md Illustrates the default time frame settings, specifying a 'to' timestamp and a 'windowSize' in milliseconds. This is a partial JSON snippet. ```json "timeFrame": { "to": {current timestamp}, "windowSize": 60000 } ``` -------------------------------- ### Fetch Events Opened or Closed in Last Minute with Delay Source: https://github.com/instana/openapi/blob/master/spec/descriptions/getEvents.md This example fetches events opened or closed within the last minute, incorporating a 120-second fetch delay. It utilizes 'filterEventUpdates=true' to only include events whose state changed within the specified timeframe. ```bash TO_MILLIS=$((($(date +%s) - 120) * 1000)) curl --request GET "https:///api/events?windowSize=60000&to=$TO_MILLIS&filterEventUpdates=true" \ --header 'Authorization: apiToken ' ``` -------------------------------- ### Get API Version API Source: https://context7.com/instana/openapi/llms.txt Retrieves the current API version information. ```APIDOC ## GET /api/instana/version ### Description Retrieves the current API version information, including branch, commit hash, and image tag. ### Method GET ### Endpoint `https://{unit}-{tenant}.instana.io/api/instana/version` ### Parameters #### Headers - **authorization** (string) - Required - API token for authentication (e.g., `apiToken YOUR_API_TOKEN`) ### Response #### Success Response (200) - **branch** (string) - The name of the branch the API build is from. - **commit** (string) - The commit hash of the API build. - **imageTag** (string) - The Docker image tag for the API build. ### Response Example ```json { "branch": "develop", "commit": "862420fa8696bd5106224f340a1f93d3c7d86409", "imageTag": "3.267.99-0" } ``` ``` -------------------------------- ### GET /api/v1/maintenance-configurations/{id} Source: https://github.com/instana/openapi/blob/master/spec/descriptions/getMaintenanceConfig.md Retrieves a specific maintenance configuration using its ID. ```APIDOC ## GET /api/v1/maintenance-configurations/{id} ### Description This endpoint retrieves a maintenance configuration given its ID. ### Method GET ### Endpoint /api/v1/maintenance-configurations/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the maintenance config to fetch. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the maintenance configuration. - **name** (string) - The name of the maintenance configuration. - **description** (string) - A description of the maintenance configuration. - **startTime** (string) - The start time of the maintenance period (ISO 8601 format). - **endTime** (string) - The end time of the maintenance period (ISO 8601 format). - **active** (boolean) - Indicates if the maintenance configuration is currently active. #### Response Example ```json { "id": "config-123", "name": "Server Maintenance", "description": "Scheduled maintenance for all servers.", "startTime": "2023-10-27T10:00:00Z", "endTime": "2023-10-27T12:00:00Z", "active": true } ``` ``` -------------------------------- ### Create Application Configuration Source: https://context7.com/instana/openapi/llms.txt Creates a new Application Perspective with specified tag filter expressions. This is used to define how applications are grouped and monitored. ```bash curl --request POST \ --url 'https://{unit}-{tenant}.instana.io/api/application-monitoring/settings/application' \ --header 'authorization: apiToken YOUR_API_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ \ "label": "Production Services", \ "boundaryScope": "INBOUND", \ "scope": "INCLUDE_IMMEDIATE_DOWNSTREAM_DATABASE_AND_MESSAGING", \ "tagFilterExpression": { \ "type": "EXPRESSION", \ "logicalOperator": "AND", \ "elements": [ \ {"type": "TAG_FILTER", "name": "kubernetes.label", "key": "env", "value": "production", "operator": "EQUALS", "entity": "DESTINATION"}, \ {"type": "TAG_FILTER", "name": "kubernetes.namespace.name", "value": "default", "operator": "EQUALS", "entity": "DESTINATION"} \ ] \ }, \ "accessRules": [{"accessType": "READ_WRITE", "relationType": "GLOBAL"}] \ }' ``` -------------------------------- ### Get Services Source: https://context7.com/instana/openapi/llms.txt Retrieves a list of monitored services within the tenant. You can filter by name and include snapshot IDs. The response includes service details and associated technologies. ```bash curl --request GET \ --url 'https://{unit}-{tenant}.instana.io/api/application-monitoring/services?nameFilter=payment&pageSize=10&includeSnapshotIds=true' \ --header 'authorization: apiToken YOUR_API_TOKEN' ``` -------------------------------- ### GET /events/{eventId} Source: https://github.com/instana/openapi/blob/master/spec/descriptions/getEvent.md Retrieves a specific event using its unique identifier. ```APIDOC ## GET /events/{eventId} ### Description This endpoint retrieves an event given its ID. ### Method GET ### Endpoint /events/{eventId} ### Parameters #### Path Parameters - **eventId** (string) - Required - The ID of the event to fetch. ``` -------------------------------- ### POST /api/automation/actioninstances Source: https://context7.com/instana/openapi/llms.txt Executes an automation action on an agent for automated remediation. Requires host ID, action ID, and optional input parameters. ```APIDOC ## Run Automation Action ### Description Executes an automation action on an agent for automated remediation. ### Method POST ### Endpoint `https://{unit}-{tenant}.instana.io/api/automation/actioninstances` ### Request Body - **hostId** (string) - Required - The ID of the host where the action should run. - **actionId** (string) - Required - The ID of the automation action to execute. - **eventId** (string) - Optional - The ID of the event that triggered the action. - **inputParameters** (array) - Optional - Input parameters for the action. - **inputParameters[0]** (object) - **name** (string) - Required - The name of the parameter. - **type** (string) - Required - The type of the parameter. - **value** (string) - Required - The value of the parameter. - **async** (boolean) - Optional - Whether to run the action asynchronously. - **timeout** (integer) - Optional - The timeout in seconds for the action. ### Response #### Success Response (200) - **actionInstanceId** (string) - The ID of the action instance. - **actionId** (string) - The ID of the action. - **actionName** (string) - The name of the action. - **type** (string) - The type of the action. - **status** (string) - The status of the action (e.g., "SUBMITTED"). ``` -------------------------------- ### GET /api/custom-dashboard Source: https://context7.com/instana/openapi/llms.txt Retrieves custom dashboards for visualization. Supports querying by title and pagination. ```APIDOC ## Get Custom Dashboards ### Description Retrieves custom dashboards for visualization. ### Method GET ### Endpoint `https://{unit}-{tenant}.instana.io/api/custom-dashboard` ### Query Parameters - **query** (string) - Optional - A query string to filter dashboards by title. - **pageSize** (integer) - Optional - The number of dashboards to return per page. - **page** (integer) - Optional - The page number to retrieve. ### Response #### Success Response (200) - **items** (array) - List of custom dashboards. - **items[0]** (object) - **id** (string) - The ID of the dashboard. - **title** (string) - The title of the dashboard. - **annotations** (array) - Annotations for the dashboard (e.g., ["SHARED"]). ``` -------------------------------- ### GET /api/events Source: https://context7.com/instana/openapi/llms.txt Retrieves events (issues, incidents, changes) within a time window. ```APIDOC ## GET /api/events ### Description Retrieves events (issues, incidents, changes) within a time window. ### Method GET ### Endpoint `https://{unit}-{tenant}.instana.io/api/events` ### Parameters #### Query Parameters - **windowSize** (integer) - Required - The window size in milliseconds. - **to** (integer) - Optional - The end time in milliseconds since epoch. - **eventTypeFilters** (string) - Optional - Comma-separated list of event types to filter by (e.g., "INCIDENT,ISSUE"). ### Response #### Success Response (200) - Returns an array of event objects. - **id** (string) - The unique identifier of the event. - **type** (string) - The type of the event (e.g., "issue", "incident"). - **state** (string) - The current state of the event (e.g., "OPEN"). - **problem** (object) - Information about the problem associated with the event. - **id** (string) - The ID of the problem. - **problem_text** (string) - A description of the problem. - **severity** (integer) - The severity level of the problem. - **start** (integer) - The start time of the event in milliseconds since epoch. #### Response Example ```json [ { "id": "GdKPDQV0SR6bc184Hg4wig", "type": "issue", "state": "OPEN", "problem": { "id": "3Lp8tyWNTvKdypvFskzDGA", "problem_text": "High latency detected", "severity": 5 }, "start": 1691505339666 } ] ``` ``` -------------------------------- ### POST /api/synthetics/settings/tests/ci-cd Source: https://github.com/instana/openapi/blob/master/spec/descriptions/createSyntheticTestCICD.md Creates an OnDemand Execution of Synthetic Tests for CI/CD Integrations. ```APIDOC ## POST /api/synthetics/settings/tests/ci-cd ### Description This API endpoint creates an OnDemand Execution of Synthetic Tests to be used on CI/CD Integrations. ### Method POST ### Endpoint /api/synthetics/settings/tests/ci-cd ### Parameters #### Request Body - **testId** (string) - Required - The id of the test to be executed upon request. - **customization.locations** (array of strings) - Required - The ids of the locations where the test needs to be executed. - **customization.configuration** (object) - Optional - An configuration object with properties timeout, retries and retryInterval, used to override the test defined configuration. - **timeout** (string) - Optional - Example: "5s" - **retries** (integer) - Optional - Example: 2 - **retryInterval** (integer) - Optional - Example: 1 - **customization.customProperties** (object) - Optional - An object with name/value pairs to provide additional information to this Synthetic Test CI/CD execution. - **type** (string) - Optional - Example: "Build" ### Request Example ```json [ { "testId":"pdVai8bqov1ta9Wq0Fnw", "customization":{ "locations":[ "DNCYizgM3cju2Xnap24Z" ], "configuration":{ "timeout":"5s", "retryInterval":1, "retries":2 }, "customProperties" : { "type":"Build" } } } ] ``` ### Response #### Success Response (200) - **status** (string) - Indicates the status of the request. - **message** (string) - Provides details about the execution status. ``` -------------------------------- ### Create Smart Alert Configuration Source: https://context7.com/instana/openapi/llms.txt Creates an application-level smart alert for automated notifications. This requires specifying alert details, rules, thresholds, and associated channels. ```bash curl --request POST \ --url 'https://{unit}-{tenant}.instana.io/api/events/settings/application-alert-configs' \ --header 'authorization: apiToken YOUR_API_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ \ "name": "High Latency Alert", \ "description": "Alert when latency exceeds threshold", \ "applicationId": "btg-B701Rx6o9QNXUS4TVw", \ "severity": 5, \ "triggering": true, \ "rule": { \ "alertType": "slowness", \ "metricName": "latency", \ "aggregation": "P90" \ }, \ "threshold": { \ "type": "staticThreshold", \ "operator": ">=", \ "value": 1000 \ }, \ "timeThreshold": { \ "type": "violationsInSequence", \ "timeWindow": 600000 \ }, \ "alertChannelIds": ["channel-id-123"], \ "granularity": 600000 \ }' ``` -------------------------------- ### GET /api/synthetics/settings/tests Source: https://github.com/instana/openapi/blob/master/spec/descriptions/getSyntheticTestCICDs.md Retrieves Synthetic Test CI/CDs. Supports filtering to narrow down the results. ```APIDOC ## GET /api/synthetics/settings/tests ### Description Retrieves Synthetic Test CI/CDs. This endpoint allows for optional filtering to refine the returned data. ### Method GET ### Endpoint /api/synthetics/settings/tests ### Query Parameters - **filter** (string) - Optional - Filters the Synthetic Test CI/CDs to retrieve only the ones that match the specified filter condition. Multiple filters can be combined with 'AND'. The format is '{attribute=operator=value}'. ### Request Example ```json { "example": "/api/synthetics/settings/tests?filter={runType=CI/CD}&filter={completed=true}" } ``` ### Response #### Success Response (200) - **data** (array) - A list of Synthetic Test CI/CD objects. - **attributes** (object) - Details about the test. - **locationId** (string) - The ID of the location. - **testId** (string) - The ID of the test. - **runType** (string) - The type of run (e.g., CI/CD). - **completed** (boolean) - Indicates if the test run is completed. #### Response Example ```json { "example": "{\"data\": [{\"attributes\": {\"locationId\": \"loc1\", \"testId\": \"testA\", \"runType\": \"CI/CD\", \"completed\": true}}], \"pageInfo\": {}}" } ``` ``` -------------------------------- ### Select Entire Application Perspective Source: https://github.com/instana/openapi/blob/master/spec/descriptions/tagApplicationAlertConfiguration.md Use this JSON structure to select an entire application, including all its services and endpoints, by providing the application ID. ```json { "applications": { "": { "applicationId": "" } } } ``` -------------------------------- ### Get Synthetic Locations Source: https://github.com/instana/openapi/blob/master/spec/descriptions/tagSyntheticResults.md Retrieves a list of Synthetic locations with Last Test Run data. ```APIDOC ## GET /api/synthetics/locations ### Description Retrieves a list of Synthetic locations with Last Test Run on (each location) result data. ### Method GET ### Endpoint /api/synthetics/locations ### Query Parameters #### Mandatory Parameters - **timeFrame** (object) - Required - Specifies the timeframe for metrics retrieval. - **windowSize** (integer) - Required - Window size in milliseconds. - **to** (integer) - Optional - Unix timestamp for the end of the time frame (defaults to current timestamp). #### Optional Parameters - **pagination.page** (integer) - Optional - Select the page number to retrieve. - **pagination.pageSize** (integer) - Optional - Set the number of Synthetic locations to return with one query. #### Ordering - **order.by** (string) - Optional - Use the metric name (e.g., "location_name") to order by its value. Can be one of: location_name, location_label, status, type, total_tests, last_test_run, namespace. - **order.direction** (string) - Optional - Either ascending (ASC) or descending (DESC). #### Filtering - **tagFilters** (array) - Optional - Filters to narrow down return results. Can be one of: synthetic.locationName, synthetic.locationLabel, synthetic.locationId. Replaced by tagFilterExpression. Example: `"tagFilters":[{ "stringValue":"hYziqsaXSJmQsehOWg1S", "name":"synthetic.locationId", "operator":"EQUALS" }]` - **tagFilterExpression** (object) - Optional - Filters to narrow down return results. Can be of type EXPRESSION or TAG_FILTER with logical operators AND or OR. Example: `"tagFilterExpression": { "type":"EXPRESSION", "logicalOperator":"OR", "elements":[{ "name": "synthetic.locationId", "operator": "EQUALS", "stringValue":"WnjlKKbgzLDnyGra6PAs" }] }` ### Request Example ```json { "timeFrame": { "windowSize": 60000, "to": 1678886400000 }, "pagination": { "page": 1, "pageSize": 50 }, "order": { "by": "location_name", "direction": "ASC" }, "tagFilterExpression": { "type": "TAG_FILTER", "logicalOperator": "OR", "elements": [ { "name": "synthetic.locationId", "operator": "EQUALS", "stringValue": "loc1" }, { "name": "synthetic.locationId", "operator": "EQUALS", "stringValue": "loc2" } ] } } ``` ### Response #### Success Response (200) - **locations** (array) - List of synthetic locations. - **location_name** (string) - Name of the location. - **location_label** (string) - Label of the location. - **status** (string) - Status of the location. - **type** (string) - Type of the location. - **total_tests** (integer) - Total number of tests in the location. - **last_test_run** (object) - Data about the last test run. - **namespace** (string) - Namespace of the location. #### Response Example ```json { "locations": [ { "location_name": "New York", "location_label": "US-East", "status": "UP", "type": "HTTP", "total_tests": 10, "last_test_run": { "timestamp": 1678886300000, "responseTime": 250, "successRate": 0.95 }, "namespace": "default" } ] } ``` ```