UNPKG

firebase-tools

Version:
155 lines (154 loc) • 6.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValueType = exports.Reducer = exports.MetricKind = exports.Aligner = exports.TimeSeriesView = exports.CLOUD_MONITORING_VERSION = void 0; exports.queryTimeSeries = queryTimeSeries; exports.listNotificationChannels = listNotificationChannels; exports.createNotificationChannel = createNotificationChannel; exports.getAlertPolicy = getAlertPolicy; exports.updateAlertPolicy = updateAlertPolicy; const api_1 = require("../api"); const apiv2_1 = require("../apiv2"); const error_1 = require("../error"); exports.CLOUD_MONITORING_VERSION = "v3"; var TimeSeriesView; (function (TimeSeriesView) { TimeSeriesView["FULL"] = "FULL"; TimeSeriesView["HEADERS"] = "HEADERS"; })(TimeSeriesView || (exports.TimeSeriesView = TimeSeriesView = {})); var Aligner; (function (Aligner) { Aligner["ALIGN_NONE"] = "ALIGN_NONE"; Aligner["ALIGN_DELTA"] = "ALIGN_DELTA"; Aligner["ALIGN_RATE"] = "ALIGN_RATE"; Aligner["ALIGN_INTERPOLATE"] = "ALIGN_INTERPOLATE"; Aligner["ALIGN_NEXT_OLDER"] = "ALIGN_NEXT_OLDER"; Aligner["ALIGN_MIN"] = "ALIGN_MIN"; Aligner["ALIGN_MAX"] = "ALIGN_MAX"; Aligner["ALIGN_MEAN"] = "ALIGN_MEAN"; Aligner["ALIGN_COUNT"] = "ALIGN_COUNT"; Aligner["ALIGN_SUM"] = "ALIGN_SUM"; Aligner["ALIGN_STDDEV"] = "ALIGN_STDDEV"; Aligner["ALIGN_COUNT_TRUE"] = "ALIGN_COUNT_TRUE"; Aligner["ALIGN_FRACTION_TRUE"] = "ALIGN_FRACTION_TRUE"; })(Aligner || (exports.Aligner = Aligner = {})); var MetricKind; (function (MetricKind) { MetricKind["METRIC_KIND_UNSPECIFIED"] = "METRIC_KIND_UNSPECIFIED"; MetricKind["GAUGE"] = "GAUGE"; MetricKind["DELTA"] = "DELTA"; MetricKind["CUMULATIVE"] = "CUMULATIVE"; })(MetricKind || (exports.MetricKind = MetricKind = {})); var Reducer; (function (Reducer) { Reducer["REDUCE_NONE"] = "REDUCE_NONE"; Reducer["REDUCE_MEAN"] = "REDUCE_MEAN"; Reducer["REDUCE_MIN"] = "REDUCE_MIN"; Reducer["REDUCE_MAX"] = "REDUCE_MAX"; Reducer["REDUCE_SUM"] = "REDUCE_SUM"; Reducer["REDUCE_STDDEV"] = "REDUCE_STDDEV"; Reducer["REDUCE_COUNT"] = "REDUCE_COUNT"; Reducer["REDUCE_COUNT_TRUE"] = "REDUCE_COUNT_TRUE"; Reducer["REDUCE_FRACTION_TRUE"] = "REDUCE_FRACTION_TRUE"; Reducer["REDUCE_PERCENTILE_99"] = "REDUCE_PERCENTILE_99"; Reducer["REDUCE_PERCENTILE_95"] = "REDUCE_PERCENTILE_95"; Reducer["REDUCE_PERCENTILE_50"] = "REDUCE_PERCENTILE_50"; Reducer["REDUCE_PERCENTILE_05"] = "REDUCE_PERCENTILE_05"; })(Reducer || (exports.Reducer = Reducer = {})); var ValueType; (function (ValueType) { ValueType["VALUE_TYPE_UNSPECIFIED"] = "VALUE_TYPE_UNSPECIFIED"; ValueType["BOOL"] = "BOOL"; ValueType["INT64"] = "INT64"; ValueType["DOUBLE"] = "DOUBLE"; ValueType["STRING"] = "STRING"; })(ValueType || (exports.ValueType = ValueType = {})); async function queryTimeSeries(query, project) { const client = new apiv2_1.Client({ urlPrefix: (0, api_1.cloudMonitoringOrigin)(), apiVersion: exports.CLOUD_MONITORING_VERSION, }); const queryParams = {}; for (const [key, value] of Object.entries(query)) { if (typeof value === "string" || typeof value === "number") { queryParams[key] = value; } } try { const res = await client.get(`/projects/${project}/timeSeries/`, { queryParams, }); return res.body.timeSeries; } catch (err) { throw new error_1.FirebaseError(`Failed to get Cloud Monitoring metric: ${(0, error_1.getErrMsg)(err)}`, { status: (0, error_1.getErrStatus)(err), original: (0, error_1.getError)(err), }); } } async function listNotificationChannels(project, filter) { const client = new apiv2_1.Client({ urlPrefix: (0, api_1.cloudMonitoringOrigin)(), apiVersion: exports.CLOUD_MONITORING_VERSION, }); try { const res = await client.get(`/projects/${project}/notificationChannels`, filter ? { queryParams: { filter } } : {}); return res.body?.notificationChannels ?? []; } catch (err) { throw new error_1.FirebaseError(`Failed to list Cloud Monitoring notification channels: ${(0, error_1.getErrMsg)(err)}`, { status: (0, error_1.getErrStatus)(err), original: (0, error_1.getError)(err), }); } } async function createNotificationChannel(project, channel) { const client = new apiv2_1.Client({ urlPrefix: (0, api_1.cloudMonitoringOrigin)(), apiVersion: exports.CLOUD_MONITORING_VERSION, }); try { const res = await client.post(`/projects/${project}/notificationChannels`, channel); return res.body; } catch (err) { throw new error_1.FirebaseError(`Failed to create Cloud Monitoring notification channel: ${(0, error_1.getErrMsg)(err)}`, { status: (0, error_1.getErrStatus)(err), original: (0, error_1.getError)(err), }); } } async function getAlertPolicy(name) { const client = new apiv2_1.Client({ urlPrefix: (0, api_1.cloudMonitoringOrigin)(), apiVersion: exports.CLOUD_MONITORING_VERSION, }); const path = name.startsWith("/") ? name : `/${name}`; try { const res = await client.get(path); return res.body; } catch (err) { throw new error_1.FirebaseError(`Failed to get Cloud Monitoring alert policy ${name}: ${(0, error_1.getErrMsg)(err)}`, { status: (0, error_1.getErrStatus)(err), original: (0, error_1.getError)(err), }); } } async function updateAlertPolicy(policy, updateMask) { const client = new apiv2_1.Client({ urlPrefix: (0, api_1.cloudMonitoringOrigin)(), apiVersion: exports.CLOUD_MONITORING_VERSION, }); const path = policy.name.startsWith("/") ? policy.name : `/${policy.name}`; try { const res = await client.patch(path, policy, updateMask ? { queryParams: { updateMask } } : {}); return res.body; } catch (err) { throw new error_1.FirebaseError(`Failed to update Cloud Monitoring alert policy ${policy.name}: ${(0, error_1.getErrMsg)(err)}`, { status: (0, error_1.getErrStatus)(err), original: (0, error_1.getError)(err), }); } }