Back to Collection Items
#include <C_CkHttpW.h>
#include <C_CkJsonObjectW.h>
#include <C_CkHttpResponseW.h>
#include <C_CkStringBuilderW.h>
#include <C_CkJsonArrayW.h>
void ChilkatSample(void)
{
HCkHttpW http;
BOOL success;
HCkJsonObjectW queryParams;
HCkHttpResponseW resp;
HCkStringBuilderW sbResponseBody;
HCkJsonArrayW jarrResp;
int respStatusCode;
HCkJsonObjectW json;
const wchar_t *v_type;
const wchar_t *query;
const wchar_t *created;
const wchar_t *v_Email;
const wchar_t *Handle;
const wchar_t *Name;
const wchar_t *deleted;
int id;
const wchar_t *message;
const wchar_t *modified;
BOOL multi;
const wchar_t *name;
const wchar_t *Group_by;
const wchar_t *Metric;
const wchar_t *v_Type;
BOOL Enable_logs_sample;
BOOL Enable_samples;
const wchar_t *Escalation_message;
int Evaluation_delay;
const wchar_t *Group_retention_duration;
BOOL Groupby_simple_monitor;
BOOL Include_tags;
BOOL Locked;
int Min_failure_duration;
int Min_location_failed;
int New_group_delay;
int New_host_delay;
int No_data_timeframe;
const wchar_t *Notification_preset_name;
BOOL Notify_audit;
BOOL Notify_no_data;
const wchar_t *On_missing_data;
const wchar_t *Renotify_interval;
int Renotify_occurrences;
BOOL Require_full_window;
const wchar_t *Day_starts;
int Hour_starts;
int Month_starts;
int Ut_d_e;
const wchar_t *Synthetics_check_id;
const wchar_t *Recovery_window;
const wchar_t *Trigger_window;
const wchar_t *Critical;
const wchar_t *Critical_recovery;
const wchar_t *Ok;
const wchar_t *Unknown;
const wchar_t *Warning;
const wchar_t *Warning_recovery;
const wchar_t *Timeout_h;
const wchar_t *overall_state;
int priority;
int Last_nodata_ts;
int Last_notified_ts;
int Last_resolved_ts;
int Last_triggered_ts;
const wchar_t *Ullamco2Name;
const wchar_t *Status;
int Voluptate_0cLast_nodata_ts;
int Voluptate_0cLast_notified_ts;
int Voluptate_0cLast_resolved_ts;
int Voluptate_0cLast_triggered_ts;
const wchar_t *Voluptate_0cName;
const wchar_t *Voluptate_0cStatus;
int Ut_8;
int Ut7Last_nodata_ts;
int Ut7Last_notified_ts;
int Ut7Last_resolved_ts;
int Ut7Last_triggered_ts;
const wchar_t *Ut7Name;
const wchar_t *Ut7Status;
int j;
int count_j;
int v_end;
int start;
int k;
int count_k;
const wchar_t *strVal;
const wchar_t *data_source;
const wchar_t *Aggregation;
int Interval;
const wchar_t *computeMetric;
const wchar_t *Query;
const wchar_t *facet;
int limit;
const wchar_t *sortAggregation;
const wchar_t *sortMetric;
const wchar_t *Order;
int i;
int count_i;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttpW_Create();
queryParams = CkJsonObjectW_Create();
CkJsonObjectW_UpdateString(queryParams,L"group_states",L"alert");
CkJsonObjectW_UpdateString(queryParams,L"name",L"tempor Ut sed velit");
CkJsonObjectW_UpdateString(queryParams,L"tags",L"host:host0");
CkJsonObjectW_UpdateString(queryParams,L"monitor_tags",L"service:my-app");
CkJsonObjectW_UpdateString(queryParams,L"with_downtimes",L"true");
CkJsonObjectW_UpdateInt(queryParams,L"id_offset",-62147425);
CkJsonObjectW_UpdateInt(queryParams,L"page",0);
CkJsonObjectW_UpdateInt(queryParams,L"page_size",20);
CkHttpW_SetRequestHeader(http,L"Accept",L"application/json");
resp = CkHttpW_QuickRequestParams(http,L"GET",L"https://api.app.ddog-gov.com/api/v1/monitor",queryParams);
if (CkHttpW_getLastMethodSuccess(http) == FALSE) {
wprintf(L"%s\n",CkHttpW_lastErrorText(http));
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(queryParams);
return;
}
sbResponseBody = CkStringBuilderW_Create();
CkHttpResponseW_GetBodySb(resp,sbResponseBody);
jarrResp = CkJsonArrayW_Create();
CkJsonArrayW_LoadSb(jarrResp,sbResponseBody);
CkJsonArrayW_putEmitCompact(jarrResp,FALSE);
wprintf(L"Response Body:\n");
wprintf(L"%s\n",CkJsonArrayW_emit(jarrResp));
respStatusCode = CkHttpResponseW_getStatusCode(resp);
wprintf(L"Response Status Code = %d\n",respStatusCode);
if (respStatusCode >= 400) {
wprintf(L"Response Header:\n");
wprintf(L"%s\n",CkHttpResponseW_header(resp));
wprintf(L"Failed.\n");
CkHttpResponseW_Dispose(resp);
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(queryParams);
CkStringBuilderW_Dispose(sbResponseBody);
CkJsonArrayW_Dispose(jarrResp);
return;
}
CkHttpResponseW_Dispose(resp);
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// [
// {
// "type": "query alert",
// "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100",
// "created": "1977-10-10T13:08:01.527Z",
// "creator": {
// "email": "eiusmod aliquip pariatur dolore",
// "handle": "fugiat id sint",
// "name": "elit in"
// },
// "deleted": "2015-07-16T18:46:50.390Z",
// "id": 83649643,
// "matching_downtimes": [
// {
// "id": 1625,
// "end": 1412792983,
// "scope": [
// "env:staging"
// ],
// "start": 1412792983
// },
// {
// "id": 1625,
// "end": 1412792983,
// "scope": [
// "env:staging"
// ],
// "start": 1412792983
// }
// ],
// "message": "adi",
// "modified": "1973-08-05T09:10:13.718Z",
// "multi": false,
// "name": "My monitor",
// "options": {
// "aggregation": {
// "group_by": "host",
// "metric": "metrics.name",
// "type": "count"
// },
// "device_ids": [
// "firefox.tablet",
// "mobile_small"
// ],
// "enable_logs_sample": true,
// "enable_samples": true,
// "escalation_message": "none",
// "evaluation_delay": 27121357,
// "group_retention_duration": "esse aliquip ullamco irure",
// "groupby_simple_monitor": true,
// "include_tags": true,
// "locked": false,
// "min_failure_duration": 0,
// "min_location_failed": 1,
// "new_group_delay": -9275927,
// "new_host_delay": 300,
// "no_data_timeframe": 58492166,
// "notification_preset_name": "show_all",
// "notify_audit": false,
// "notify_by": [
// "ut quis e",
// "dolore elit"
// ],
// "notify_no_data": false,
// "on_missing_data": "show_no_data",
// "renotify_interval": null,
// "renotify_occurrences": -27638100,
// "renotify_statuses": [
// "alert",
// "warn"
// ],
// "require_full_window": true,
// "scheduling_options": {
// "evaluation_window": {
// "day_starts": "04:00",
// "hour_starts": 0,
// "month_starts": 1
// }
// },
// "silenced": {
// "Ut_d_e": 94650378
// },
// "synthetics_check_id": "enim et tempor",
// "threshold_windows": {
// "recovery_window": "ipsum eiusmod",
// "trigger_window": "ullamco"
// },
// "thresholds": {
// "critical": -74585739.55469063,
// "critical_recovery": -14449679.792215124,
// "ok": 69468073.65422091,
// "unknown": -35840527.53565459,
// "warning": -78191860.79094723,
// "warning_recovery": 30967604.742167816
// },
// "timeout_h": null,
// "variables": [
// {
// "data_source": "rum",
// "compute": {
// "aggregation": "avg",
// "interval": 60000,
// "metric": "@duration"
// },
// "name": "query_errors",
// "group_by": [
// {
// "facet": "status",
// "limit": 10,
// "sort": {
// "aggregation": "avg",
// "metric": "qui Ut cupidatat proid",
// "order": "desc"
// }
// },
// {
// "facet": "status",
// "limit": 10,
// "sort": {
// "aggregation": "avg",
// "metric": "nostrud mollit",
// "order": "desc"
// }
// }
// ],
// "indexes": [
// "days-3",
// "days-7"
// ],
// "search": {
// "query": "service:query"
// }
// },
// {
// "data_source": "rum",
// "compute": {
// "aggregation": "avg",
// "interval": 60000,
// "metric": "@duration"
// },
// "name": "query_errors",
// "group_by": [
// {
// "facet": "status",
// "limit": 10,
// "sort": {
// "aggregation": "avg",
// "metric": "ut non",
// "order": "desc"
// }
// },
// {
// "facet": "status",
// "limit": 10,
// "sort": {
// "aggregation": "avg",
// "metric": "reprehenderit sint eu proident",
// "order": "desc"
// }
// }
// ],
// "indexes": [
// "days-3",
// "days-7"
// ],
// "search": {
// "query": "service:query"
// }
// }
// ]
// },
// "overall_state": "Unknown",
// "priority": 4,
// "restricted_roles": [
// "Ut",
// "dolor ad Duis proident"
// ],
// "state": {
// "groups": {
// "ullamco2": {
// "last_nodata_ts": -30657062,
// "last_notified_ts": -69789968,
// "last_resolved_ts": -40935564,
// "last_triggered_ts": 63742261,
// "name": "id",
// "status": "Alert"
// },
// "voluptate_0c": {
// "last_nodata_ts": 13097104,
// "last_notified_ts": 53104444,
// "last_resolved_ts": -69320667,
// "last_triggered_ts": 27152807,
// "name": "quis amet",
// "status": "Alert"
// }
// }
// },
// "tags": [
// "fugiat culpa aliqua consectetur",
// "minim in"
// ]
// },
// {
// "type": "query alert",
// "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100",
// "created": "1952-04-01T14:02:58.093Z",
// "creator": {
// "email": "esse ad veniam qui",
// "handle": "nulla enim non",
// "name": "ut reprehend"
// },
// "deleted": "2005-07-24T20:18:36.078Z",
// "id": 14961847,
// "matching_downtimes": [
// {
// "id": 1625,
// "end": 1412792983,
// "scope": [
// "env:staging"
// ],
// "start": 1412792983
// },
// {
// "id": 1625,
// "end": 1412792983,
// "scope": [
// "env:staging"
// ],
// "start": 1412792983
// }
// ],
// "message": "labore nulla",
// "modified": "2013-05-28T22:30:26.014Z",
// "multi": true,
// "name": "My monitor",
// "options": {
// "aggregation": {
// "group_by": "host",
// "metric": "metrics.name",
// "type": "count"
// },
// "device_ids": [
// "chrome.tablet",
// "firefox.laptop_large"
// ],
// "enable_logs_sample": false,
// "enable_samples": true,
// "escalation_message": "none",
// "evaluation_delay": 48023490,
// "group_retention_duration": "veniam eiusmod anim",
// "groupby_simple_monitor": true,
// "include_tags": true,
// "locked": false,
// "min_failure_duration": 0,
// "min_location_failed": 1,
// "new_group_delay": -78698406,
// "new_host_delay": 300,
// "no_data_timeframe": -29298203,
// "notification_preset_name": "show_all",
// "notify_audit": false,
// "notify_by": [
// "in labore irure reprehenderit",
// "Ut ea"
// ],
// "notify_no_data": false,
// "on_missing_data": "default",
// "renotify_interval": null,
// "renotify_occurrences": 88843653,
// "renotify_statuses": [
// "warn",
// "no data"
// ],
// "require_full_window": false,
// "scheduling_options": {
// "evaluation_window": {
// "day_starts": "04:00",
// "hour_starts": 0,
// "month_starts": 1
// }
// },
// "silenced": {
// "ut_8": -75892703
// },
// "synthetics_check_id": "ut et aute cupidatat",
// "threshold_windows": {
// "recovery_window": "dolor do",
// "trigger_window": "pariatur"
// },
// "thresholds": {
// "critical": -5336230.352944598,
// "critical_recovery": 7945004.71738635,
// "ok": -68115416.21610427,
// "unknown": 89541673.34797806,
// "warning": 66901483.96194494,
// "warning_recovery": -39599171.26178945
// },
// "timeout_h": null,
// "variables": [
// {
// "data_source": "rum",
// "compute": {
// "aggregation": "avg",
// "interval": 60000,
// "metric": "@duration"
// },
// "name": "query_errors",
// "group_by": [
// {
// "facet": "status",
// "limit": 10,
// "sort": {
// "aggregation": "avg",
// "metric": "deserunt nisi mollit",
// "order": "desc"
// }
// },
// {
// "facet": "status",
// "limit": 10,
// "sort": {
// "aggregation": "avg",
// "metric": "dolor pariatur",
// "order": "desc"
// }
// }
// ],
// "indexes": [
// "days-3",
// "days-7"
// ],
// "search": {
// "query": "service:query"
// }
// },
// {
// "data_source": "rum",
// "compute": {
// "aggregation": "avg",
// "interval": 60000,
// "metric": "@duration"
// },
// "name": "query_errors",
// "group_by": [
// {
// "facet": "status",
// "limit": 10,
// "sort": {
// "aggregation": "avg",
// "metric": "l",
// "order": "desc"
// }
// },
// {
// "facet": "status",
// "limit": 10,
// "sort": {
// "aggregation": "avg",
// "metric": "ut non",
// "order": "desc"
// }
// }
// ],
// "indexes": [
// "days-3",
// "days-7"
// ],
// "search": {
// "query": "service:query"
// }
// }
// ]
// },
// "overall_state": "Unknown",
// "priority": 3,
// "restricted_roles": [
// "ipsum laboris laborum incididunt",
// "fugiat non est"
// ],
// "state": {
// "groups": {
// "Ut7": {
// "last_nodata_ts": 21127128,
// "last_notified_ts": 19208840,
// "last_resolved_ts": 29022384,
// "last_triggered_ts": -96682791,
// "name": "ex tempor",
// "status": "OK"
// }
// }
// },
// "tags": [
// "dolor nulla dolore elit",
// "consequat sunt in"
// ]
// }
// ]
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
// Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat.
i = 0;
count_i = CkJsonArrayW_getSize(jarrResp);
while (i < count_i) {
json = CkJsonArrayW_ObjectAt(jarrResp,i);
v_type = CkJsonObjectW_stringOf(json,L"type");
query = CkJsonObjectW_stringOf(json,L"query");
created = CkJsonObjectW_stringOf(json,L"created");
v_Email = CkJsonObjectW_stringOf(json,L"creator.email");
Handle = CkJsonObjectW_stringOf(json,L"creator.handle");
Name = CkJsonObjectW_stringOf(json,L"creator.name");
deleted = CkJsonObjectW_stringOf(json,L"deleted");
id = CkJsonObjectW_IntOf(json,L"id");
message = CkJsonObjectW_stringOf(json,L"message");
modified = CkJsonObjectW_stringOf(json,L"modified");
multi = CkJsonObjectW_BoolOf(json,L"multi");
name = CkJsonObjectW_stringOf(json,L"name");
Group_by = CkJsonObjectW_stringOf(json,L"options.aggregation.group_by");
Metric = CkJsonObjectW_stringOf(json,L"options.aggregation.metric");
v_Type = CkJsonObjectW_stringOf(json,L"options.aggregation.type");
Enable_logs_sample = CkJsonObjectW_BoolOf(json,L"options.enable_logs_sample");
Enable_samples = CkJsonObjectW_BoolOf(json,L"options.enable_samples");
Escalation_message = CkJsonObjectW_stringOf(json,L"options.escalation_message");
Evaluation_delay = CkJsonObjectW_IntOf(json,L"options.evaluation_delay");
Group_retention_duration = CkJsonObjectW_stringOf(json,L"options.group_retention_duration");
Groupby_simple_monitor = CkJsonObjectW_BoolOf(json,L"options.groupby_simple_monitor");
Include_tags = CkJsonObjectW_BoolOf(json,L"options.include_tags");
Locked = CkJsonObjectW_BoolOf(json,L"options.locked");
Min_failure_duration = CkJsonObjectW_IntOf(json,L"options.min_failure_duration");
Min_location_failed = CkJsonObjectW_IntOf(json,L"options.min_location_failed");
New_group_delay = CkJsonObjectW_IntOf(json,L"options.new_group_delay");
New_host_delay = CkJsonObjectW_IntOf(json,L"options.new_host_delay");
No_data_timeframe = CkJsonObjectW_IntOf(json,L"options.no_data_timeframe");
Notification_preset_name = CkJsonObjectW_stringOf(json,L"options.notification_preset_name");
Notify_audit = CkJsonObjectW_BoolOf(json,L"options.notify_audit");
Notify_no_data = CkJsonObjectW_BoolOf(json,L"options.notify_no_data");
On_missing_data = CkJsonObjectW_stringOf(json,L"options.on_missing_data");
Renotify_interval = CkJsonObjectW_stringOf(json,L"options.renotify_interval");
Renotify_occurrences = CkJsonObjectW_IntOf(json,L"options.renotify_occurrences");
Require_full_window = CkJsonObjectW_BoolOf(json,L"options.require_full_window");
Day_starts = CkJsonObjectW_stringOf(json,L"options.scheduling_options.evaluation_window.day_starts");
Hour_starts = CkJsonObjectW_IntOf(json,L"options.scheduling_options.evaluation_window.hour_starts");
Month_starts = CkJsonObjectW_IntOf(json,L"options.scheduling_options.evaluation_window.month_starts");
Ut_d_e = CkJsonObjectW_IntOf(json,L"options.silenced.Ut_d_e");
Synthetics_check_id = CkJsonObjectW_stringOf(json,L"options.synthetics_check_id");
Recovery_window = CkJsonObjectW_stringOf(json,L"options.threshold_windows.recovery_window");
Trigger_window = CkJsonObjectW_stringOf(json,L"options.threshold_windows.trigger_window");
Critical = CkJsonObjectW_stringOf(json,L"options.thresholds.critical");
Critical_recovery = CkJsonObjectW_stringOf(json,L"options.thresholds.critical_recovery");
Ok = CkJsonObjectW_stringOf(json,L"options.thresholds.ok");
Unknown = CkJsonObjectW_stringOf(json,L"options.thresholds.unknown");
Warning = CkJsonObjectW_stringOf(json,L"options.thresholds.warning");
Warning_recovery = CkJsonObjectW_stringOf(json,L"options.thresholds.warning_recovery");
Timeout_h = CkJsonObjectW_stringOf(json,L"options.timeout_h");
overall_state = CkJsonObjectW_stringOf(json,L"overall_state");
priority = CkJsonObjectW_IntOf(json,L"priority");
Last_nodata_ts = CkJsonObjectW_IntOf(json,L"state.groups.ullamco2.last_nodata_ts");
Last_notified_ts = CkJsonObjectW_IntOf(json,L"state.groups.ullamco2.last_notified_ts");
Last_resolved_ts = CkJsonObjectW_IntOf(json,L"state.groups.ullamco2.last_resolved_ts");
Last_triggered_ts = CkJsonObjectW_IntOf(json,L"state.groups.ullamco2.last_triggered_ts");
Ullamco2Name = CkJsonObjectW_stringOf(json,L"state.groups.ullamco2.name");
Status = CkJsonObjectW_stringOf(json,L"state.groups.ullamco2.status");
Voluptate_0cLast_nodata_ts = CkJsonObjectW_IntOf(json,L"state.groups.voluptate_0c.last_nodata_ts");
Voluptate_0cLast_notified_ts = CkJsonObjectW_IntOf(json,L"state.groups.voluptate_0c.last_notified_ts");
Voluptate_0cLast_resolved_ts = CkJsonObjectW_IntOf(json,L"state.groups.voluptate_0c.last_resolved_ts");
Voluptate_0cLast_triggered_ts = CkJsonObjectW_IntOf(json,L"state.groups.voluptate_0c.last_triggered_ts");
Voluptate_0cName = CkJsonObjectW_stringOf(json,L"state.groups.voluptate_0c.name");
Voluptate_0cStatus = CkJsonObjectW_stringOf(json,L"state.groups.voluptate_0c.status");
Ut_8 = CkJsonObjectW_IntOf(json,L"options.silenced.ut_8");
Ut7Last_nodata_ts = CkJsonObjectW_IntOf(json,L"state.groups.Ut7.last_nodata_ts");
Ut7Last_notified_ts = CkJsonObjectW_IntOf(json,L"state.groups.Ut7.last_notified_ts");
Ut7Last_resolved_ts = CkJsonObjectW_IntOf(json,L"state.groups.Ut7.last_resolved_ts");
Ut7Last_triggered_ts = CkJsonObjectW_IntOf(json,L"state.groups.Ut7.last_triggered_ts");
Ut7Name = CkJsonObjectW_stringOf(json,L"state.groups.Ut7.name");
Ut7Status = CkJsonObjectW_stringOf(json,L"state.groups.Ut7.status");
j = 0;
count_j = CkJsonObjectW_SizeOfArray(json,L"matching_downtimes");
while (j < count_j) {
CkJsonObjectW_putJ(json,j);
id = CkJsonObjectW_IntOf(json,L"matching_downtimes[j].id");
v_end = CkJsonObjectW_IntOf(json,L"matching_downtimes[j].end");
start = CkJsonObjectW_IntOf(json,L"matching_downtimes[j].start");
k = 0;
count_k = CkJsonObjectW_SizeOfArray(json,L"matching_downtimes[j].scope");
while (k < count_k) {
CkJsonObjectW_putK(json,k);
strVal = CkJsonObjectW_stringOf(json,L"matching_downtimes[j].scope[k]");
k = k + 1;
}
j = j + 1;
}
j = 0;
count_j = CkJsonObjectW_SizeOfArray(json,L"options.device_ids");
while (j < count_j) {
CkJsonObjectW_putJ(json,j);
strVal = CkJsonObjectW_stringOf(json,L"options.device_ids[j]");
j = j + 1;
}
j = 0;
count_j = CkJsonObjectW_SizeOfArray(json,L"options.notify_by");
while (j < count_j) {
CkJsonObjectW_putJ(json,j);
strVal = CkJsonObjectW_stringOf(json,L"options.notify_by[j]");
j = j + 1;
}
j = 0;
count_j = CkJsonObjectW_SizeOfArray(json,L"options.renotify_statuses");
while (j < count_j) {
CkJsonObjectW_putJ(json,j);
strVal = CkJsonObjectW_stringOf(json,L"options.renotify_statuses[j]");
j = j + 1;
}
j = 0;
count_j = CkJsonObjectW_SizeOfArray(json,L"options.variables");
while (j < count_j) {
CkJsonObjectW_putJ(json,j);
data_source = CkJsonObjectW_stringOf(json,L"options.variables[j].data_source");
Aggregation = CkJsonObjectW_stringOf(json,L"options.variables[j].compute.aggregation");
Interval = CkJsonObjectW_IntOf(json,L"options.variables[j].compute.interval");
computeMetric = CkJsonObjectW_stringOf(json,L"options.variables[j].compute.metric");
name = CkJsonObjectW_stringOf(json,L"options.variables[j].name");
Query = CkJsonObjectW_stringOf(json,L"options.variables[j].search.query");
k = 0;
count_k = CkJsonObjectW_SizeOfArray(json,L"options.variables[j].group_by");
while (k < count_k) {
CkJsonObjectW_putK(json,k);
facet = CkJsonObjectW_stringOf(json,L"options.variables[j].group_by[k].facet");
limit = CkJsonObjectW_IntOf(json,L"options.variables[j].group_by[k].limit");
sortAggregation = CkJsonObjectW_stringOf(json,L"options.variables[j].group_by[k].sort.aggregation");
sortMetric = CkJsonObjectW_stringOf(json,L"options.variables[j].group_by[k].sort.metric");
Order = CkJsonObjectW_stringOf(json,L"options.variables[j].group_by[k].sort.order");
k = k + 1;
}
k = 0;
count_k = CkJsonObjectW_SizeOfArray(json,L"options.variables[j].indexes");
while (k < count_k) {
CkJsonObjectW_putK(json,k);
strVal = CkJsonObjectW_stringOf(json,L"options.variables[j].indexes[k]");
k = k + 1;
}
j = j + 1;
}
j = 0;
count_j = CkJsonObjectW_SizeOfArray(json,L"restricted_roles");
while (j < count_j) {
CkJsonObjectW_putJ(json,j);
strVal = CkJsonObjectW_stringOf(json,L"restricted_roles[j]");
j = j + 1;
}
j = 0;
count_j = CkJsonObjectW_SizeOfArray(json,L"tags");
while (j < count_j) {
CkJsonObjectW_putJ(json,j);
strVal = CkJsonObjectW_stringOf(json,L"tags[j]");
j = j + 1;
}
CkJsonObjectW_Dispose(json);
i = i + 1;
}
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(queryParams);
CkStringBuilderW_Dispose(sbResponseBody);
CkJsonArrayW_Dispose(jarrResp);
}
Curl Command
curl -G -d "group_states=alert"
-d "name=tempor%20Ut%20sed%20velit"
-d "tags=host%3Ahost0"
-d "monitor_tags=service%3Amy-app"
-d "with_downtimes=true"
-d "id_offset=-62147425"
-d "page=0"
-d "page_size=20"
-H "Accept: application/json"
https://api.app.ddog-gov.com/api/v1/monitor
Postman Collection Item JSON
{
"name": "Get all monitor details",
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/api/v1/monitor?group_states=alert&name=tempor Ut sed velit&tags=host:host0&monitor_tags=service:my-app&with_downtimes=true&id_offset=-62147425&page=0&page_size=20",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"monitor"
],
"query": [
{
"key": "group_states",
"value": "alert",
"description": "When specified, shows additional information about the group states.\nChoose one or more from `all`, `alert`, `warn`, and `no data`."
},
{
"key": "name",
"value": "tempor Ut sed velit",
"description": "A string to filter monitors by name."
},
{
"key": "tags",
"value": "host:host0",
"description": "A comma separated list indicating what tags, if any, should be used to filter the list of monitors by scope.\nFor example, `host:host0`."
},
{
"key": "monitor_tags",
"value": "service:my-app",
"description": "A comma separated list indicating what service and/or custom tags, if any, should be used to filter the list of monitors.\nTags created in the Datadog UI automatically have the service key prepended. For example, `service:my-app`."
},
{
"key": "with_downtimes",
"value": "true",
"description": "If this argument is set to true, then the returned data includes all current active downtimes for each monitor."
},
{
"key": "id_offset",
"value": "-62147425",
"description": "Use this parameter for paginating through large sets of monitors. Start with a value of zero, make a request, set the value to the last ID of result set, and then repeat until the response is empty."
},
{
"key": "page",
"value": "0",
"description": "The page to start paginating from. If this argument is not specified, the request returns all monitors without pagination."
},
{
"key": "page_size",
"value": "20",
"description": "The number of monitors to return per page. If the page argument is not specified, the default behavior returns all monitors without a `page_size` limit. However, if page is specified and `page_size` is not, the argument defaults to 100."
}
]
},
"description": "Get details about the specified monitor from your organization."
},
"response": [
{
"name": "OK",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v1/monitor?group_states=alert&name=tempor Ut sed velit&tags=host:host0&monitor_tags=service:my-app&with_downtimes=true&id_offset=-62147425&page=0&page_size=20",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"monitor"
],
"query": [
{
"key": "group_states",
"value": "alert",
"description": "When specified, shows additional information about the group states.\nChoose one or more from `all`, `alert`, `warn`, and `no data`."
},
{
"key": "name",
"value": "tempor Ut sed velit",
"description": "A string to filter monitors by name."
},
{
"key": "tags",
"value": "host:host0",
"description": "A comma separated list indicating what tags, if any, should be used to filter the list of monitors by scope.\nFor example, `host:host0`."
},
{
"key": "monitor_tags",
"value": "service:my-app",
"description": "A comma separated list indicating what service and/or custom tags, if any, should be used to filter the list of monitors.\nTags created in the Datadog UI automatically have the service key prepended. For example, `service:my-app`."
},
{
"key": "with_downtimes",
"value": "true",
"description": "If this argument is set to true, then the returned data includes all current active downtimes for each monitor."
},
{
"key": "id_offset",
"value": "-62147425",
"description": "Use this parameter for paginating through large sets of monitors. Start with a value of zero, make a request, set the value to the last ID of result set, and then repeat until the response is empty."
},
{
"key": "page",
"value": "0",
"description": "The page to start paginating from. If this argument is not specified, the request returns all monitors without pagination."
},
{
"key": "page_size",
"value": "20",
"description": "The number of monitors to return per page. If the page argument is not specified, the default behavior returns all monitors without a `page_size` limit. However, if page is specified and `page_size` is not, the argument defaults to 100."
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "[\n {\n \"type\": \"query alert\",\n \"query\": \"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\n \"created\": \"1977-10-10T13:08:01.527Z\",\n \"creator\": {\n \"email\": \"eiusmod aliquip pariatur dolore\",\n \"handle\": \"fugiat id sint\",\n \"name\": \"elit in\"\n },\n \"deleted\": \"2015-07-16T18:46:50.390Z\",\n \"id\": 83649643,\n \"matching_downtimes\": [\n {\n \"id\": 1625,\n \"end\": 1412792983,\n \"scope\": [\n \"env:staging\"\n ],\n \"start\": 1412792983\n },\n {\n \"id\": 1625,\n \"end\": 1412792983,\n \"scope\": [\n \"env:staging\"\n ],\n \"start\": 1412792983\n }\n ],\n \"message\": \"adi\",\n \"modified\": \"1973-08-05T09:10:13.718Z\",\n \"multi\": false,\n \"name\": \"My monitor\",\n \"options\": {\n \"aggregation\": {\n \"group_by\": \"host\",\n \"metric\": \"metrics.name\",\n \"type\": \"count\"\n },\n \"device_ids\": [\n \"firefox.tablet\",\n \"mobile_small\"\n ],\n \"enable_logs_sample\": true,\n \"enable_samples\": true,\n \"escalation_message\": \"none\",\n \"evaluation_delay\": 27121357,\n \"group_retention_duration\": \"esse aliquip ullamco irure\",\n \"groupby_simple_monitor\": true,\n \"include_tags\": true,\n \"locked\": false,\n \"min_failure_duration\": 0,\n \"min_location_failed\": 1,\n \"new_group_delay\": -9275927,\n \"new_host_delay\": 300,\n \"no_data_timeframe\": 58492166,\n \"notification_preset_name\": \"show_all\",\n \"notify_audit\": false,\n \"notify_by\": [\n \"ut quis e\",\n \"dolore elit\"\n ],\n \"notify_no_data\": false,\n \"on_missing_data\": \"show_no_data\",\n \"renotify_interval\": null,\n \"renotify_occurrences\": -27638100,\n \"renotify_statuses\": [\n \"alert\",\n \"warn\"\n ],\n \"require_full_window\": true,\n \"scheduling_options\": {\n \"evaluation_window\": {\n \"day_starts\": \"04:00\",\n \"hour_starts\": 0,\n \"month_starts\": 1\n }\n },\n \"silenced\": {\n \"Ut_d_e\": 94650378\n },\n \"synthetics_check_id\": \"enim et tempor\",\n \"threshold_windows\": {\n \"recovery_window\": \"ipsum eiusmod\",\n \"trigger_window\": \"ullamco\"\n },\n \"thresholds\": {\n \"critical\": -74585739.55469063,\n \"critical_recovery\": -14449679.792215124,\n \"ok\": 69468073.65422091,\n \"unknown\": -35840527.53565459,\n \"warning\": -78191860.79094723,\n \"warning_recovery\": 30967604.742167816\n },\n \"timeout_h\": null,\n \"variables\": [\n {\n \"data_source\": \"rum\",\n \"compute\": {\n \"aggregation\": \"avg\",\n \"interval\": 60000,\n \"metric\": \"@duration\"\n },\n \"name\": \"query_errors\",\n \"group_by\": [\n {\n \"facet\": \"status\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"metric\": \"qui Ut cupidatat proid\",\n \"order\": \"desc\"\n }\n },\n {\n \"facet\": \"status\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"metric\": \"nostrud mollit\",\n \"order\": \"desc\"\n }\n }\n ],\n \"indexes\": [\n \"days-3\",\n \"days-7\"\n ],\n \"search\": {\n \"query\": \"service:query\"\n }\n },\n {\n \"data_source\": \"rum\",\n \"compute\": {\n \"aggregation\": \"avg\",\n \"interval\": 60000,\n \"metric\": \"@duration\"\n },\n \"name\": \"query_errors\",\n \"group_by\": [\n {\n \"facet\": \"status\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"metric\": \"ut non\",\n \"order\": \"desc\"\n }\n },\n {\n \"facet\": \"status\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"metric\": \"reprehenderit sint eu proident\",\n \"order\": \"desc\"\n }\n }\n ],\n \"indexes\": [\n \"days-3\",\n \"days-7\"\n ],\n \"search\": {\n \"query\": \"service:query\"\n }\n }\n ]\n },\n \"overall_state\": \"Unknown\",\n \"priority\": 4,\n \"restricted_roles\": [\n \"Ut\",\n \"dolor ad Duis proident\"\n ],\n \"state\": {\n \"groups\": {\n \"ullamco2\": {\n \"last_nodata_ts\": -30657062,\n \"last_notified_ts\": -69789968,\n \"last_resolved_ts\": -40935564,\n \"last_triggered_ts\": 63742261,\n \"name\": \"id\",\n \"status\": \"Alert\"\n },\n \"voluptate_0c\": {\n \"last_nodata_ts\": 13097104,\n \"last_notified_ts\": 53104444,\n \"last_resolved_ts\": -69320667,\n \"last_triggered_ts\": 27152807,\n \"name\": \"quis amet\",\n \"status\": \"Alert\"\n }\n }\n },\n \"tags\": [\n \"fugiat culpa aliqua consectetur\",\n \"minim in\"\n ]\n },\n {\n \"type\": \"query alert\",\n \"query\": \"avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100\",\n \"created\": \"1952-04-01T14:02:58.093Z\",\n \"creator\": {\n \"email\": \"esse ad veniam qui\",\n \"handle\": \"nulla enim non\",\n \"name\": \"ut reprehend\"\n },\n \"deleted\": \"2005-07-24T20:18:36.078Z\",\n \"id\": 14961847,\n \"matching_downtimes\": [\n {\n \"id\": 1625,\n \"end\": 1412792983,\n \"scope\": [\n \"env:staging\"\n ],\n \"start\": 1412792983\n },\n {\n \"id\": 1625,\n \"end\": 1412792983,\n \"scope\": [\n \"env:staging\"\n ],\n \"start\": 1412792983\n }\n ],\n \"message\": \"labore nulla\",\n \"modified\": \"2013-05-28T22:30:26.014Z\",\n \"multi\": true,\n \"name\": \"My monitor\",\n \"options\": {\n \"aggregation\": {\n \"group_by\": \"host\",\n \"metric\": \"metrics.name\",\n \"type\": \"count\"\n },\n \"device_ids\": [\n \"chrome.tablet\",\n \"firefox.laptop_large\"\n ],\n \"enable_logs_sample\": false,\n \"enable_samples\": true,\n \"escalation_message\": \"none\",\n \"evaluation_delay\": 48023490,\n \"group_retention_duration\": \"veniam eiusmod anim\",\n \"groupby_simple_monitor\": true,\n \"include_tags\": true,\n \"locked\": false,\n \"min_failure_duration\": 0,\n \"min_location_failed\": 1,\n \"new_group_delay\": -78698406,\n \"new_host_delay\": 300,\n \"no_data_timeframe\": -29298203,\n \"notification_preset_name\": \"show_all\",\n \"notify_audit\": false,\n \"notify_by\": [\n \"in labore irure reprehenderit\",\n \"Ut ea\"\n ],\n \"notify_no_data\": false,\n \"on_missing_data\": \"default\",\n \"renotify_interval\": null,\n \"renotify_occurrences\": 88843653,\n \"renotify_statuses\": [\n \"warn\",\n \"no data\"\n ],\n \"require_full_window\": false,\n \"scheduling_options\": {\n \"evaluation_window\": {\n \"day_starts\": \"04:00\",\n \"hour_starts\": 0,\n \"month_starts\": 1\n }\n },\n \"silenced\": {\n \"ut_8\": -75892703\n },\n \"synthetics_check_id\": \"ut et aute cupidatat\",\n \"threshold_windows\": {\n \"recovery_window\": \"dolor do\",\n \"trigger_window\": \"pariatur\"\n },\n \"thresholds\": {\n \"critical\": -5336230.352944598,\n \"critical_recovery\": 7945004.71738635,\n \"ok\": -68115416.21610427,\n \"unknown\": 89541673.34797806,\n \"warning\": 66901483.96194494,\n \"warning_recovery\": -39599171.26178945\n },\n \"timeout_h\": null,\n \"variables\": [\n {\n \"data_source\": \"rum\",\n \"compute\": {\n \"aggregation\": \"avg\",\n \"interval\": 60000,\n \"metric\": \"@duration\"\n },\n \"name\": \"query_errors\",\n \"group_by\": [\n {\n \"facet\": \"status\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"metric\": \"deserunt nisi mollit\",\n \"order\": \"desc\"\n }\n },\n {\n \"facet\": \"status\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"metric\": \"dolor pariatur\",\n \"order\": \"desc\"\n }\n }\n ],\n \"indexes\": [\n \"days-3\",\n \"days-7\"\n ],\n \"search\": {\n \"query\": \"service:query\"\n }\n },\n {\n \"data_source\": \"rum\",\n \"compute\": {\n \"aggregation\": \"avg\",\n \"interval\": 60000,\n \"metric\": \"@duration\"\n },\n \"name\": \"query_errors\",\n \"group_by\": [\n {\n \"facet\": \"status\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"metric\": \"l\",\n \"order\": \"desc\"\n }\n },\n {\n \"facet\": \"status\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"metric\": \"ut non\",\n \"order\": \"desc\"\n }\n }\n ],\n \"indexes\": [\n \"days-3\",\n \"days-7\"\n ],\n \"search\": {\n \"query\": \"service:query\"\n }\n }\n ]\n },\n \"overall_state\": \"Unknown\",\n \"priority\": 3,\n \"restricted_roles\": [\n \"ipsum laboris laborum incididunt\",\n \"fugiat non est\"\n ],\n \"state\": {\n \"groups\": {\n \"Ut7\": {\n \"last_nodata_ts\": 21127128,\n \"last_notified_ts\": 19208840,\n \"last_resolved_ts\": 29022384,\n \"last_triggered_ts\": -96682791,\n \"name\": \"ex tempor\",\n \"status\": \"OK\"\n }\n }\n },\n \"tags\": [\n \"dolor nulla dolore elit\",\n \"consequat sunt in\"\n ]\n }\n]"
},
{
"name": "Bad Request",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v1/monitor?group_states=alert&name=tempor Ut sed velit&tags=host:host0&monitor_tags=service:my-app&with_downtimes=true&id_offset=-62147425&page=0&page_size=20",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"monitor"
],
"query": [
{
"key": "group_states",
"value": "alert",
"description": "When specified, shows additional information about the group states.\nChoose one or more from `all`, `alert`, `warn`, and `no data`."
},
{
"key": "name",
"value": "tempor Ut sed velit",
"description": "A string to filter monitors by name."
},
{
"key": "tags",
"value": "host:host0",
"description": "A comma separated list indicating what tags, if any, should be used to filter the list of monitors by scope.\nFor example, `host:host0`."
},
{
"key": "monitor_tags",
"value": "service:my-app",
"description": "A comma separated list indicating what service and/or custom tags, if any, should be used to filter the list of monitors.\nTags created in the Datadog UI automatically have the service key prepended. For example, `service:my-app`."
},
{
"key": "with_downtimes",
"value": "true",
"description": "If this argument is set to true, then the returned data includes all current active downtimes for each monitor."
},
{
"key": "id_offset",
"value": "-62147425",
"description": "Use this parameter for paginating through large sets of monitors. Start with a value of zero, make a request, set the value to the last ID of result set, and then repeat until the response is empty."
},
{
"key": "page",
"value": "0",
"description": "The page to start paginating from. If this argument is not specified, the request returns all monitors without pagination."
},
{
"key": "page_size",
"value": "20",
"description": "The number of monitors to return per page. If the page argument is not specified, the default behavior returns all monitors without a `page_size` limit. However, if page is specified and `page_size` is not, the argument defaults to 100."
}
]
}
},
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"Bad Request\",\n \"Bad Request\"\n ]\n}"
},
{
"name": "Forbidden",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v1/monitor?group_states=alert&name=tempor Ut sed velit&tags=host:host0&monitor_tags=service:my-app&with_downtimes=true&id_offset=-62147425&page=0&page_size=20",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"monitor"
],
"query": [
{
"key": "group_states",
"value": "alert",
"description": "When specified, shows additional information about the group states.\nChoose one or more from `all`, `alert`, `warn`, and `no data`."
},
{
"key": "name",
"value": "tempor Ut sed velit",
"description": "A string to filter monitors by name."
},
{
"key": "tags",
"value": "host:host0",
"description": "A comma separated list indicating what tags, if any, should be used to filter the list of monitors by scope.\nFor example, `host:host0`."
},
{
"key": "monitor_tags",
"value": "service:my-app",
"description": "A comma separated list indicating what service and/or custom tags, if any, should be used to filter the list of monitors.\nTags created in the Datadog UI automatically have the service key prepended. For example, `service:my-app`."
},
{
"key": "with_downtimes",
"value": "true",
"description": "If this argument is set to true, then the returned data includes all current active downtimes for each monitor."
},
{
"key": "id_offset",
"value": "-62147425",
"description": "Use this parameter for paginating through large sets of monitors. Start with a value of zero, make a request, set the value to the last ID of result set, and then repeat until the response is empty."
},
{
"key": "page",
"value": "0",
"description": "The page to start paginating from. If this argument is not specified, the request returns all monitors without pagination."
},
{
"key": "page_size",
"value": "20",
"description": "The number of monitors to return per page. If the page argument is not specified, the default behavior returns all monitors without a `page_size` limit. However, if page is specified and `page_size` is not, the argument defaults to 100."
}
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"Bad Request\",\n \"Bad Request\"\n ]\n}"
},
{
"name": "Too many requests",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v1/monitor?group_states=alert&name=tempor Ut sed velit&tags=host:host0&monitor_tags=service:my-app&with_downtimes=true&id_offset=-62147425&page=0&page_size=20",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"monitor"
],
"query": [
{
"key": "group_states",
"value": "alert",
"description": "When specified, shows additional information about the group states.\nChoose one or more from `all`, `alert`, `warn`, and `no data`."
},
{
"key": "name",
"value": "tempor Ut sed velit",
"description": "A string to filter monitors by name."
},
{
"key": "tags",
"value": "host:host0",
"description": "A comma separated list indicating what tags, if any, should be used to filter the list of monitors by scope.\nFor example, `host:host0`."
},
{
"key": "monitor_tags",
"value": "service:my-app",
"description": "A comma separated list indicating what service and/or custom tags, if any, should be used to filter the list of monitors.\nTags created in the Datadog UI automatically have the service key prepended. For example, `service:my-app`."
},
{
"key": "with_downtimes",
"value": "true",
"description": "If this argument is set to true, then the returned data includes all current active downtimes for each monitor."
},
{
"key": "id_offset",
"value": "-62147425",
"description": "Use this parameter for paginating through large sets of monitors. Start with a value of zero, make a request, set the value to the last ID of result set, and then repeat until the response is empty."
},
{
"key": "page",
"value": "0",
"description": "The page to start paginating from. If this argument is not specified, the request returns all monitors without pagination."
},
{
"key": "page_size",
"value": "20",
"description": "The number of monitors to return per page. If the page argument is not specified, the default behavior returns all monitors without a `page_size` limit. However, if page is specified and `page_size` is not, the argument defaults to 100."
}
]
}
},
"status": "Too Many Requests",
"code": 429,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"Bad Request\",\n \"Bad Request\"\n ]\n}"
}
]
}