CloudQuery News

Introducing the new Tempo.io source plugin

Aleksandr Shcherbakov

Aleksandr Shcherbakov

Tempo.io offers a variety of solutions to aid in business processes planning and management.

Why Tempo.io + CloudQuery? #

The Tempo.io source plugin allows you to perform advanced data filtering and grouping without relying on restrictive UI filters. Furthermore, when used in conjunction with other source plugins (e.g., Jira or BitBucket source plugin) it allows for cross-referencing the data to gain more insights into the processes and possible blind spots.
With the latest release, the CloudQuery Tempo.io source plugin supports fetching the following resources:

Use cases #

Let's take a look at a couple of examples to help you get started with the Tempo.io source plugin.

People that are committed to program implementation at the moment #

Sometimes you want to know how many people are committed to implementing a program. You can do this by the following query:
select programs.id, programs.name, coalesce(sum(memberships.commitment_percent), 0) / 100 as committed_people
from
    (select id, name, (jsonb_array_elements(teams -> 'values') -> 'id') ::bigint as team_id from tempo_programs) programs
left join
    (select commitment_percent::bigint, team_id from tempo_team_memberships
        where (tempo_team_memberships.from is null or tempo_team_memberships.from <= current_date)
          and (tempo_team_memberships.inclusive_to is null or tempo_team_memberships.inclusive_to >= current_date)
    ) memberships
    on programs.team_id = memberships.team_id
group by programs.id, programs.name
order by committed_people desc;

Tasks that required more time than is billable #

Sometimes the task at hand requires a lot of time, and the billable time may diverge from the time spent. The following query helps to identify what issues have mismatched logged billable time and time spent.
select issue ->> 'id'          as issue_id,
       sum(billable_seconds)   as billable_seconds,
       sum(time_spent_seconds) as time_spent_seconds
from tempo_worklogs
where billable_seconds != time_spent_seconds
group by issue_id
order by time_spent_seconds desc, billable_seconds desc;

Getting Started #

To get started syncing Tempo.io data, see the Tempo.io source plugin documentation for instructions.

Incremental data #

To prevent repeated syncing of the same data CloudQuery supports incremental tables. We designed tempo_plans and tempo_worklogs tables to be incremental, so that only the updated and new entries are fetched.
To take advantage of this feature be sure to add the backend_options field to your sync spec.
For example, to sync from Tempo.io to PostgreSQL you could use the following configuration (remember to update the versions and add your own credentials):
kind: source
spec:
  name: tempo-io
  path: cloudquery/tempo-io
  registry: cloudquery
  version: 'v1.x.x'
  tables:
    - '*'
  destinations: ['postgresql']
  backend_options:
    table_name: 'cq_state_tempo_io'
    connection: '@@plugins.postgresql.connection'
  spec:
    api_key: '${TEMPO_IO_API_KEY}'
---
kind: destination
spec:
  name: postgresql
  path: cloudquery/postgresql
  registry: cloudquery
  version: 'v8.x.x'
  spec:
    connection_string: '${POSTGRES_DSN}'

Ready to get started with CloudQuery? You can try out CloudQuery locally with our quick start guide or explore the CloudQuery Platform (currently in beta) for a more scalable solution.
Got feedback or suggestions? Join the CloudQuery community to connect with other users and experts, or message our team directly here if you have any questions.
Aleksandr Shcherbakov

Written by Aleksandr Shcherbakov

Alex is a senior software engineer at CloudQuery who specialises in application development and cloud data infrastructure.

Turn cloud chaos into clarity

Find out how CloudQuery can help you get clarity from a chaotic cloud environment with a personalized conversation and demo.

Join our mailing list

Subscribe to our newsletter to make sure you don't miss any updates.

Legal

© 2024 CloudQuery, Inc. All rights reserved.

We use tracking cookies to understand how you use the product and help us improve it. Please accept cookies to help us improve. You can always opt out later via the link in the footer.