CloudQuery News
Introducing the new StatusPage source plugin
What is StatusPage? #
StatusPage is a service from Atlassian that allows businesses to communicate to their customers about the status of their services. It provides a platform to create a status page where businesses can post updates about incidents, scheduled maintenance, and the overall status of their services. This helps in maintaining transparency with customers and reduces support tickets during incidents.
Why StatusPage + CloudQuery? #
The StatusPage source plugin allows you to perform advanced data filtering and grouping without relying on restrictive UI filters. It also makes it easier to access parts of data that would not be possible to reach through UI.
The CloudQuery StatusPage source plugin supports fetching the following resources:
- Pages into the
statuspage_pages
table- Page Subscribers into the
statuspage_page_subscribers
table - Page Incidents into the
statuspage_page_incidents
table- Incident Subscribers into the
statuspage_page_incident_subscribers
table
- Users into the
statuspage_users
table- User Permissions into the
statuspage_user_permissions
table
Use cases #
Let's take a look at a few examples that show how you can use the StatusPage source plugin to analyze and uncover overdue problems, prioritize the most pressing ones, and get insights into what is most important for your users.
Long running incidents #
Lets check for any unresolved issues that have been ongoing for more than 7 days.
select id as incident_id,
page_id,
created_at,
updated_at
from statuspage_page_incidents
where status in ('investigating', 'identified')
and resolved_at is null
and created_at <= now() - interval '7 days';
Most subscribed active incidents #
Maybe you want to check which active StatusPage incidents are most subscribed by users?
select
incidents.id as incident_id,
incidents.page_id,
incidents.created_at,
incidents.updated_at,
count(subscribers._cq_parent_id) as subscriber_count
from statuspage_page_incidents as incidents
left join statuspage_page_incident_subscribers as subscribers
on incidents._cq_id = subscribers._cq_parent_id
where incidents.status in ('investigating', 'identified')
and incidents.resolved_at is null
group by incidents.id
order by subscriber_count desc;
All users with access to certain page #
With the StatusPage plugin from CloudQuery, it's possible to get all users that have access to a page with a certain id.
select
users.*,
elem->>'page_id' as page_id
from
statuspage_users as users
join
statuspage_user_permissions as sup on users.id = sup.user_id,
unnest(sup.pages::jsonb[]) as elem
where
elem->>'page_id' = 'your_page_id';
Functioning of which pages is most important to the users? #
Let's order pages by their subscriber count.
select
pages.id as page_id,
count(subscribers._cq_parent_id) as subscriber_count
from
statuspage_pages as pages
left join
statuspage_page_subscribers as subscribers
on
pages._cq_id = subscribers._cq_parent_id
group by
pages.id
order by
subscriber_count desc;
Getting Started #
To get started syncing StatusPage data, see the StatusPage source plugin documentation for instructions.
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.
Written by Bartosz Leśniewski
Bartosz is a Senior Software Engineer at CloudQuery specializing in Golang code development with over five years of experience in various roles.