Skip to content

TCO Optimizer HTTP API

This tutorial demonstrates using our TCO Optimizer HTTP API to define, query, and manage your TCO policy overrides, which are used exclusively for logs.

Visit this page to learn how to use our TCO Tracing gPRC API to define, query, and manage your TCO policy criteria, used both for spans and logs.

Base URL

Select the base API endpoint associated with your Coralogix domain.

Domain Base API endpoint
coralogix.us (Ohio) https://api.coralogix.us/api/v1/external/tco/
cx498.coralogix.com (Oregon) https://api.cx498.coralogix.com/api/v1/external/tco/
coralogix.com (Ireland) https://api.coralogix.com/api/v1/external/tco/
eu2.coralogix.com (Stockholm) https://api.eu2.coralogix.com/api/v1/external/tco/
coralogix.in (Mumbai) https://api.app.coralogix.in/api/v1/external/tco/
coralogixsg.com (Singapore) https://api.app.coralogix.com/api/v1/external/tco/
Key Value
Content-Type application/json
Authorization Bearer <cx_api_key>

API key

To use the TCO Optimizer API you need to create a personal or team API key. It’s recommended to use permission presets, as they are automatically updated with all relevant permissions. Alternatively, you can manually add individual permissions.

Preset Action Description
TCOPolicies LOGS.TCO:READPOLICIES
LOGS.TCO:UPDATEPOLICIES
SPANS.TCO:READPOLICIES
SPANS.TCO:UPDATEPOLICIES
METRICS.TCO:READPOLICIES
METRICS.TCO:UPDATEPOLICIES
View Logs TCO Policies
Manage Logs TCO Policies
View Tracing TCO Policies
Manage Tracing TCO Policies
View Metrics TCO Policies
Manage Metrics TCO Policies

Usage

Severity options

Name Value
debug 1
verbose 2
info 3
warning 4
error 5
critical 6

Priority options

Name Value
block block
low low
medium medium
high high

TCO override

Configuring a TCO override replaces the TCO policy for the specified application-subsystem-severity combination, including any associated Archive Retention Tags. In these cases, the Archive Retention Tag is overridden and reverts to the default tag.

Impact

This behavior directly impacts S3 lifecycle policies that depend on retention tags. If the tag is overridden to the default, lifecycle policies associated with specific tags, like 'Revenue,' may not be applied as intended, potentially resulting in unintended data deletion.

Prevention

If you manage S3 Lifecycle Policies based on Archive Retention Tags, review and adjust overrides to prevent unintended data deletion.

Example

  • TCO override is not in use: Retention Tag = revenue, Lifecycle Policy transitions data to Glacier after 30 days and deletes it from Glacier after 1 year.

  • TCO override is in use: Retention Tag = default, Lifecycle Policy expires data after 60 days (if set to default).

Supported endpoints

Get all policy overrides

GET /overrides

Route example: https://api.coralogix.com/api/v1/external/tco/overrides

Response example:

[
    {
        "id": "dd361b69-89c7-11ec-a5ad-0616c20b31c7",
        "name": "default|recommendationservice|INFO",
        "priority": "high",
        "severity": 3,
        "applicationName": "default",
        "subsystemName": "recommendationservice"
    },
    {
        "id": "61d551af-8f96-11ec-8bfb-02dd69f0920d",
        "name": "default|checkoutservice|DEBUG",
        "priority": "high",
        "severity": 1,
        "applicationName": "default",
        "subsystemName": "checkoutservice"
    }
]

Get single policy override by ID

GET /overrides/{id}

Route example: https://api.coralogix.com/api/v1/external/tco/overrides/*972f6b98-343c-11ee-ac29-061115d0c307*

Response example:

{
    "id": "dd361b69-89c7-11ec-a5ad-0616c20b31c7",
    "name": "default|recommendationservice|INFO",
    "priority": "high",
    "severity": 3,
    "applicationName": "default",
    "subsystemName": "recommendationservice"
}

Create single policy override

POST /overrides

Route example: https://api.coralogix.com/api/v1/external/tco/overrides

Request example:

{
    "priority": "high",
    "severity": 3,
    "applicationName": "default",
    "subsystemName": "blablabla123"
}

Response example:

{
    "priority": "high",
    "severity": 3,
    "applicationName": "default",
    "subsystemName": "blablabla123",
    "id": "972f6b98-343c-11ee-ac29-061115d0c307"
}

Create multiple policy overrides

POST /overrides/bulk

Route example: https://api.coralogix.com/api/v1/external/tco/overrides/bulk

Request example:

[
    {
        "priority": "high",
        "severity": 3,
        "applicationName": "default",
        "subsystemName": "blablabla1234"
    },
    {
        "priority": "high",
        "severity": 3,
        "applicationName": "default",
        "subsystemName": "blablabla12345"
    }
]

Response example:

[
    {
        "status": 200,
        "override": {
            "priority": "high",
            "severity": 3,
            "applicationName": "default",
            "subsystemName": "blablabla1234",
            "id": "2c42a7aa-343d-11ee-ac29-061115d0c307"
        }
    },
    {
        "status": 200,
        "override": {
            "priority": "high",
            "severity": 3,
            "applicationName": "default",
            "subsystemName": "blablabla12345",
            "id": "2c53d05f-343d-11ee-ac29-061115d0c307"
        }
    }
]

Update multiple policy overrides

PUT /overrides/bulk

Route example: https://api.coralogix.com/api/v1/external/tco/overrides/bulk

Request example:

[
    {
        "id": "2c42a7aa-343d-11ee-ac29-061115d0c307",
        "name": "default|blablabla1234|INFO",
        "priority": "high",
        "severity": 3,
        "applicationName": "default",
        "subsystemName": "blablabla1234"
    },
    {
        "id": "2c53d05f-343d-11ee-ac29-061115d0c307",
        "name": "default|blablabla12345|INFO",
        "priority": "high",
        "severity": 3,
        "applicationName": "default",
        "subsystemName": "blablabla12345"
    }
]

Response example:

[
    {
        "status": 200,
        "override": {
            "name": "default|blablabla1234|INFO",
            "priority": "high",
            "severity": 3,
            "applicationName": "default",
            "subsystemName": "blablabla1234",
            "id": "2c42a7aa-343d-11ee-ac29-061115d0c307"
        }
    },
    {
        "status": 200,
        "override": {
            "name": "default|blablabla12345|INFO",
            "priority": "high",
            "severity": 3,
            "applicationName": "default",
            "subsystemName": "blablabla12345",
            "id": "2c53d05f-343d-11ee-ac29-061115d0c307"
        }
    }
]

Delete single policy override

DELETE /overrides/{id}

Route example: https://api.coralogix.com/api/v1/external/tco/overrides/2c53d05f-343d-11ee-ac29-061115d0c307

Response example:

{
    "id": "2c53d05f-343d-11ee-ac29-061115d0c307"
}

Delete multiple policy overrides

DELETE /overrides/bulk

Route example: https://api.coralogix.com/api/v1/external/tco/overrides/bulk

Request example:

[
    {
        "id": "2c42a7aa-343d-11ee-ac29-061115d0c307"
    }
]

Response example:

[
    {
        "status": 200,
        "override": {
            "id": "2c42a7aa-343d-11ee-ac29-061115d0c307"
        }
    }
]

Additional resources

Documentation TCO Optimizer
TCO Tracing gPRC API

Support

Need help?

Our world-class customer success team is available 24/7 to walk you through your setup and answer any questions that may come up.

Feel free to reach out to us via our in-app chat or by sending us an email at [email protected].