Skip to content

Commit 99be3a8

Browse files
committed
feat(downdetector): add Downdetector outage-monitoring integration
1 parent a33c173 commit 99be3a8

23 files changed

Lines changed: 1987 additions & 1 deletion

apps/docs/components/icons.tsx

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6320,6 +6320,27 @@ export function DubIcon(props: SVGProps<SVGSVGElement>) {
63206320
)
63216321
}
63226322

6323+
export function DowndetectorIcon(props: SVGProps<SVGSVGElement>) {
6324+
return (
6325+
<svg {...props} viewBox='0 0 27 26' fill='none' xmlns='http://www.w3.org/2000/svg'>
6326+
<g transform='translate(0, -1)' fillRule='nonzero'>
6327+
<path
6328+
d='M13.34,1 C6.76433939,1.00596789 1.26821258,6.00441393 0.64,12.55 L0.58,12.49 L0.58,13.77 L0.58,26.53 L13.34,26.53 C17.9856847,26.6600415 22.3352248,24.2558882 24.69642,20.2528825 C27.0576152,16.2498769 27.0576152,11.2801231 24.69642,7.27711747 C22.3352248,3.27411181 17.9856847,0.869958538 13.34,1 Z'
6329+
fill='#FF160A'
6330+
/>
6331+
<path
6332+
d='M14,23.32 C12.9763522,23.5200841 11.9236478,23.5200841 10.9,23.32 C10.6505744,23.2677749 10.457176,23.0704296 10.41,22.82 C10.2001186,21.797324 10.2001186,20.742676 10.41,19.72 C10.457176,19.4695704 10.6505744,19.2722251 10.9,19.22 C11.9236478,19.0199159 12.9763522,19.0199159 14,19.22 C14.2519666,19.2711089 14.4488911,19.4680334 14.5,19.72 C14.7098814,20.742676 14.7098814,21.797324 14.5,22.82 C14.4488911,23.0719666 14.2519666,23.2688911 14,23.32 Z'
6333+
fill='#FFFFFF'
6334+
/>
6335+
<path
6336+
d='M10.63,17 L9.87,5.66 C9.87153623,5.24626414 10.1642363,4.89084264 10.57,4.81 C11.8430336,4.5800606 13.1469664,4.5800606 14.42,4.81 C14.8236737,4.89431691 15.1146532,5.2476492 15.12,5.66 L14.36,17 C14.35465,17.3236061 14.0936061,17.58465 13.77,17.59 C12.92662,17.7400262 12.06338,17.7400262 11.22,17.59 C10.894152,17.59 10.63,17.325848 10.63,17 Z'
6337+
fill='#FFFFFF'
6338+
/>
6339+
</g>
6340+
</svg>
6341+
)
6342+
}
6343+
63236344
export function DuckDuckGoIcon(props: SVGProps<SVGSVGElement>) {
63246345
return (
63256346
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='-108 -108 216 216'>

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ import {
5151
DiscordIcon,
5252
DocumentIcon,
5353
DocuSignIcon,
54+
DowndetectorIcon,
5455
DropboxIcon,
5556
DropcontactIcon,
5657
DsPyIcon,
@@ -285,6 +286,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
285286
devin: DevinIcon,
286287
discord: DiscordIcon,
287288
docusign: DocuSignIcon,
289+
downdetector: DowndetectorIcon,
288290
dropbox: DropboxIcon,
289291
dropcontact: DropcontactIcon,
290292
dspy: DsPyIcon,
Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
---
2+
title: Downdetector
3+
description: Monitor outages and service status with Downdetector
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="downdetector"
10+
color="#FFFFFF"
11+
/>
12+
13+
## Usage Instructions
14+
15+
Track real-time service outages with the Downdetector Enterprise API. Search monitored companies, read their current status and report trends, inspect problem indicators, and pull incident timelines to power outage alerts and dashboards. Requires a Downdetector Enterprise API plan.
16+
17+
18+
19+
## Actions
20+
21+
### `downdetector_search_companies`
22+
23+
Search Downdetector for monitored companies by name, slug, country, or category. Returns matching companies with their ids and slugs, which you can use with the other Downdetector operations.
24+
25+
#### Input
26+
27+
| Parameter | Type | Required | Description |
28+
| --------- | ---- | -------- | ----------- |
29+
| `name` | string | No | Company name to filter on \(partial, case-insensitive match\). Example: "slack" |
30+
| `country` | string | No | ISO-2 country code to filter on. Example: "US" |
31+
| `slug` | string | No | Exact company slug to filter on. Example: "optimum-cablevision" |
32+
| `categoryId` | number | No | Category id to filter on |
33+
| `page` | number | No | 1-indexed page number for paginated results \(default 1\) |
34+
| `pageSize` | number | No | Number of results per page, between 10 and 100 \(default 25\) |
35+
| `apiKey` | string | Yes | Downdetector API Bearer token |
36+
37+
#### Output
38+
39+
| Parameter | Type | Description |
40+
| --------- | ---- | ----------- |
41+
| `companies` | array | List of companies matching the search |
42+
|`id` | number | Company id |
43+
|`name` | string | Company name |
44+
|`slug` | string | Company slug |
45+
|`url` | string | Company status page URL |
46+
|`countryIso` | string | ISO-2 country code |
47+
|`categoryId` | number | Category id |
48+
49+
### `downdetector_get_company`
50+
51+
Get details for a Downdetector company by id, including its current status, 24h report statistics, baseline, and available problem indicators.
52+
53+
#### Input
54+
55+
| Parameter | Type | Required | Description |
56+
| --------- | ---- | -------- | ----------- |
57+
| `companyId` | string | Yes | The Downdetector company id |
58+
| `fields` | string | No | Comma-separated list of fields to return \(defaults to a rich set including status, stats_24, and baseline\) |
59+
| `apiKey` | string | Yes | Downdetector API Bearer token |
60+
61+
#### Output
62+
63+
| Parameter | Type | Description |
64+
| --------- | ---- | ----------- |
65+
| `company` | object | Company details |
66+
|`id` | number | Company id |
67+
|`name` | string | Company name |
68+
|`slug` | string | Company slug |
69+
|`url` | string | Company status page URL |
70+
|`status` | string | Cached current status \(success, warning, or danger\) |
71+
|`categoryId` | number | Category id |
72+
|`countryIso` | string | ISO-2 country code |
73+
|`siteId` | number | Site id |
74+
|`baselineCurrent` | number | The current considered average reports at this point in time |
75+
|`stats24` | array | Reports over the last 24h in 15-minute buckets |
76+
|`baseline` | array | Averaged baseline values per 15m over 24h |
77+
|`indicators` | array | List of available problem indicators |
78+
|`description` | string | Company description |
79+
80+
### `downdetector_get_company_status`
81+
82+
Get the current detected status for a Downdetector company. Returns "success" (no problems), "warning", or "danger" (likely outage).
83+
84+
#### Input
85+
86+
| Parameter | Type | Required | Description |
87+
| --------- | ---- | -------- | ----------- |
88+
| `companyId` | string | Yes | The Downdetector company id |
89+
| `threshold` | number | No | If set, returns "danger" when the current report count is above this threshold, otherwise "success" |
90+
| `apiKey` | string | Yes | Downdetector API Bearer token |
91+
92+
#### Output
93+
94+
| Parameter | Type | Description |
95+
| --------- | ---- | ----------- |
96+
| `status` | string | Current status: "success", "warning", or "danger" |
97+
98+
### `downdetector_get_company_baseline`
99+
100+
Get the current baseline report value for a Downdetector company. This is the expected average number of reports for the current period, used to judge whether current reports are abnormal.
101+
102+
#### Input
103+
104+
| Parameter | Type | Required | Description |
105+
| --------- | ---- | -------- | ----------- |
106+
| `companyId` | string | Yes | The Downdetector company id |
107+
| `apiKey` | string | Yes | Downdetector API Bearer token |
108+
109+
#### Output
110+
111+
| Parameter | Type | Description |
112+
| --------- | ---- | ----------- |
113+
| `baseline` | number | The current baseline \(expected average reports\) for this period |
114+
115+
### `downdetector_get_company_indicators`
116+
117+
Get the problem indicators (e.g. "App crashing", "Login", "Server connection") reported for a Downdetector company over a time period, with the report counts and percentages for each.
118+
119+
#### Input
120+
121+
| Parameter | Type | Required | Description |
122+
| --------- | ---- | -------- | ----------- |
123+
| `companyId` | string | Yes | The Downdetector company id |
124+
| `startdate` | string | No | ISO 8601 start of the time range \(only works together with enddate\) |
125+
| `enddate` | string | No | ISO 8601 end of the time range \(only works together with startdate\) |
126+
| `apiKey` | string | Yes | Downdetector API Bearer token |
127+
128+
#### Output
129+
130+
| Parameter | Type | Description |
131+
| --------- | ---- | ----------- |
132+
| `indicators` | array | Reported problem indicators with their counts |
133+
|`slug` | string | Indicator slug |
134+
|`indicator` | string | Human-readable indicator label |
135+
|`key` | string | Indicator key |
136+
|`amount` | number | Number of reports for this indicator |
137+
|`percentage` | number | Share of total reports \(percentage\) |
138+
139+
### `downdetector_get_reports`
140+
141+
Get the number of outage reports over time for one or more company slugs, bucketed by interval. Useful for plotting report trends or detecting spikes. Defaults to the last 24 hours.
142+
143+
#### Input
144+
145+
| Parameter | Type | Required | Description |
146+
| --------- | ---- | -------- | ----------- |
147+
| `slugs` | string | Yes | Comma-separated company slug\(s\) to report on. Example: "slack,zoom" |
148+
| `startdate` | string | No | ISO 8601 start of the time range \(only works together with enddate\) |
149+
| `enddate` | string | No | ISO 8601 end of the time range \(only works together with startdate\) |
150+
| `interval` | string | No | Bucket interval, e.g. "15m", "1h", "1d" \(default "15m"\) |
151+
| `apiKey` | string | Yes | Downdetector API Bearer token |
152+
153+
#### Output
154+
155+
| Parameter | Type | Description |
156+
| --------- | ---- | ----------- |
157+
| `reports` | array | Report counts bucketed by interval |
158+
|`pointInTime` | string | Start of the time bucket \(ISO 8601\) |
159+
|`total` | number | Total number of reports in the bucket |
160+
|`indicators` | number | Number of indicator reports |
161+
|`other` | number | Number of reports from other sources |
162+
163+
### `downdetector_get_company_incidents`
164+
165+
Get the list of incidents (outages) for a Downdetector company. Defaults to the last 24 hours unless a date range is provided.
166+
167+
#### Input
168+
169+
| Parameter | Type | Required | Description |
170+
| --------- | ---- | -------- | ----------- |
171+
| `companyId` | string | Yes | The Downdetector company id |
172+
| `onlyActive` | boolean | No | When true, only the currently active incident is returned |
173+
| `startdate` | string | No | ISO 8601 start of the time range \(only works together with enddate\) |
174+
| `enddate` | string | No | ISO 8601 end of the time range \(only works together with startdate\) |
175+
| `page` | number | No | Requested page number \(1-indexed\) |
176+
| `pageSize` | number | No | Number of results per page, between 10 and 100 |
177+
| `apiKey` | string | Yes | Downdetector API Bearer token |
178+
179+
#### Output
180+
181+
| Parameter | Type | Description |
182+
| --------- | ---- | ----------- |
183+
| `incidents` | array | List of incidents for the company |
184+
185+
### `downdetector_list_incidents`
186+
187+
List all incidents (outages) across every company that were active in the chosen time period, or in the last 24 hours if no date range is provided.
188+
189+
#### Input
190+
191+
| Parameter | Type | Required | Description |
192+
| --------- | ---- | -------- | ----------- |
193+
| `onlyActive` | boolean | No | When true, only currently active incidents are returned |
194+
| `startdate` | string | No | ISO 8601 start of the time range \(only works together with enddate\) |
195+
| `enddate` | string | No | ISO 8601 end of the time range \(only works together with startdate\) |
196+
| `page` | number | No | Requested page number \(1-indexed\) |
197+
| `pageSize` | number | No | Number of results per page, between 10 and 100 |
198+
| `apiKey` | string | Yes | Downdetector API Bearer token |
199+
200+
#### Output
201+
202+
| Parameter | Type | Description |
203+
| --------- | ---- | ----------- |
204+
| `incidents` | array | List of incidents across all companies |
205+
206+
### `downdetector_list_categories`
207+
208+
List all Downdetector categories (e.g. "Telecom", "Gaming", "Social Media"). Use the returned category id to filter company searches.
209+
210+
#### Input
211+
212+
| Parameter | Type | Required | Description |
213+
| --------- | ---- | -------- | ----------- |
214+
| `apiKey` | string | Yes | Downdetector API Bearer token |
215+
216+
#### Output
217+
218+
| Parameter | Type | Description |
219+
| --------- | ---- | ----------- |
220+
| `categories` | array | List of Downdetector categories |
221+
|`id` | number | Category id |
222+
|`name` | string | Category name |
223+
|`slug` | string | Category slug |
224+
225+
### `downdetector_list_sites`
226+
227+
List all available Downdetector sites (regional status-page domains). Each site groups the companies monitored for a given country/region.
228+
229+
#### Input
230+
231+
| Parameter | Type | Required | Description |
232+
| --------- | ---- | -------- | ----------- |
233+
| `apiKey` | string | Yes | Downdetector API Bearer token |
234+
235+
#### Output
236+
237+
| Parameter | Type | Description |
238+
| --------- | ---- | ----------- |
239+
| `sites` | array | List of Downdetector sites |
240+
|`id` | number | Site id |
241+
|`name` | string | Site name |
242+
|`domain` | string | Site domain |
243+
|`countryId` | number | Country id for the site |
244+
245+

apps/docs/content/docs/en/integrations/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"devin",
4949
"discord",
5050
"docusign",
51+
"downdetector",
5152
"dropbox",
5253
"dropcontact",
5354
"dspy",

0 commit comments

Comments
 (0)