How to Use SLA Data Stored in Database

This page is about Time to SLA for Jira On-Prem.

Time to SLA provides various REST APIs to retrieve SLA data stored in the app. You may want to get that information from the database to use with business information tools.

On this page, you will learn the reasons behind the limited data access to SLA data in a database and how to interpret that limited information.

Important Notes and Disclaimer

  • Information stored in the database by the Time to SLA plugin is never meant to be used externally. We do not guarantee the integrity of the information you have collected by the instructions here. Use them at your own risk.

  • Database tables store vital information for Jira, Time to SLA, and many other plugins. Manually working on it might cause irreversible damage or bad application performance due to corrupted table statistics etc.

  • When possible, use REST services instead. If something is missing from REST services, please raise a ticket, and we will do our best to provide related services.

SLA Data on issues: AO_C5D949_TTS_ISSUE_SLA

This table stores intermediate information required to speed up the calculation of updated SLA values for an issue. Each line represents an SLA instance on a single issue.

Legacy Table

Column

Next-gen Table

Column

TTS_ISSUE_SLA

 

ISSUE_SLA

 

 

INDICATOR

 

Instead of STATE - MET/EXCEEDED/STILL/INVALID, the NOT_STARTED/RUNNING/PAUSED/STOPPED/INVALID values are stored.

 

EXPECTED_TARGET_DATE

 

DEADLINE

 

ACTUAL_TARGET_DATE

 

END_TIME

 

ISSUE_ID

 

ISSUE_ID

 

SLA_ID

 

SLA_ID

 

ISSUE_KEY

 

-

 

FINISHED

 

-

 

PAUSED

 

-

TTS_SLA

 

SLA_CONFIGURATION

 

 

SLA_VALUE

 

When an SLA has multiple goals, the values are stored in SLA_GOAL.

 

TARGET_STATUS_ID

 

As SLAs have multiple event rules, these values are stored in EVENT_RULE.

 

DESCRIPTION

 

NAME

 

ID

 

ID

 

ORIGIN_STATUS_ID

 

As SLAs have multiple event rules, these values are stored in EVENT_RULE.

 

CALENDAR_ID

 

When an SLA has multiple goals, the values are stored in SLA_GOAL.

 

SLA_VALUE_AS_TIME_STRING

 

When an SLA has multiple goals, the values are stored in SLA_GOAL.

TTS_ISSUE_SLA_NOTIF

 

ISSUE_SLA_NOTIFIER

 

 

SLA_NOTIF_ID

 

SLA_NOTIFIER_ID

 

NOTIF_TARGET_DATE

 

NEXT_NOTIFICATION_TIME

 

LAST_EXPECTED_TARGET_DATE

 

-

 

ISSUE_SLA_ID

 

ISSUE_SLA_ID

TTS_SLA_NOTIF

 

TTS_SLA_NOTIF_CONFIG

 

 

RECURRING_INTERVAL

 

RECURRENCE_INTERVAL

 

SLA_ID

 

SLA_CONFIGURATION_ID

TTS_NOTIF_LOG

 

SLA_NOTIFIER_LOG

 

 

ISSUE_ID

 

ISSUE_ID

 

SLA_TARGET_DATE

 

SLA_DEADLINE

 

SLA_ID

 

SLA_ID

 

SLA_NOTIF_ID

 

SLA_NOTIFIER_CONFIGURATION_ID

Limitation applies for information stored on those columns; please see the following:

  • Data on this table is only updated during issue transitions, so:

    • You may observe inconsistencies between the data and SLA information on the issue view because SLA is an active metric. For example, the remaining duration of an active SLA changes with each second.

    • SLAs are considered as breached once their deadline has passed. Yet this is not persisted on the database until they go through an issue transition after breaching their deadline.

    • One exception to this is paused SLAs. The target dates of paused SLAs will always be kept updated (this is done by a scheduled task, so it is reasonable to observe 2-3 minutes inaccuracies).

  • Completed SLAs (SLAs that reached their target status) always show updated information since there is no actively running clock on them.

    • So if you see FINISHED column true, you can be sure that all values in other columns will be consistent with the actual SLA state.

  • EXPECTED_TARGET_DATE is an excellent reference to check whether or not an SLA is breached. It does not change by time (except when an SLA is paused in that case target date shifts further in time, and this is correctly reflected on database entries with the help of a scheduled task).

Here are some queries to differentiate different SLA states:

Met SLAs

Met SLAs

"INDICATOR" = 'MET'

Progress SLAs (Including paused ones)

Progress SLAs (Including paused ones)

("INDICATOR" = 'STILL' AND "EXPECTED_TARGET_DATE" > now()) OR "PAUSED" is true

Progress SLAs (Excluding paused ones)

Progress SLAs (Excluding paused ones)

("INDICATOR" = 'STILL' AND "EXPECTED_TARGET_DATE" > now()) OR "PAUSED" is false

Exceeded SLAs

Exceeded SLAs

("INDICATOR" = 'EXCEED' OR ("INDICATOR" = 'STILL' AND "EXPECTED_TARGET_DATE" < now())) AND "PAUSED" is false

Completed SLAs

Completed SLAs

"FINISHED" is true