@azure/monitor-opentelemetry
Version:
Azure Monitor OpenTelemetry (Node.js)
107 lines • 4.96 kB
JavaScript
;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports._publishSend = _publishSend;
exports._publishDeserialize = _publishDeserialize;
exports.publish = publish;
exports._isSubscribedSend = _isSubscribedSend;
exports._isSubscribedDeserialize = _isSubscribedDeserialize;
exports.isSubscribed = isSubscribed;
const models_js_1 = require("../models/models.js");
const urlTemplate_js_1 = require("../static-helpers/urlTemplate.js");
const core_client_1 = require("@azure-rest/core-client");
function _publishSend(context, ikey, options = { requestOptions: {} }) {
const path = (0, urlTemplate_js_1.expandUrlTemplate)("/QuickPulseService.svc/post{?api%2Dversion,ikey}", {
"api%2Dversion": context.apiVersion ?? "2024-04-01-preview",
ikey: ikey,
}, {
allowReserved: options?.requestOptions?.skipUrlEncoding,
});
return context
.path(path)
.post({
...(0, core_client_1.operationOptionsToRequestParameters)(options),
contentType: "application/json",
headers: {
...(options?.configurationEtag !== undefined
? { "x-ms-qps-configuration-etag": options?.configurationEtag }
: {}),
...(options?.transmissionTime !== undefined
? { "x-ms-qps-transmission-time": options?.transmissionTime }
: {}),
accept: "application/json",
...options.requestOptions?.headers,
},
body: !options["monitoringDataPoints"]
? options["monitoringDataPoints"]
: (0, models_js_1.monitoringDataPointArraySerializer)(options["monitoringDataPoints"]),
});
}
async function _publishDeserialize(result) {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
const error = (0, core_client_1.createRestError)(result);
error.details = (0, models_js_1.serviceErrorDeserializer)(result.body);
throw error;
}
return (0, models_js_1.collectionConfigurationInfoDeserializer)(result.body);
}
/** Publish live metrics to the Live Metrics service when there is an active subscription to the metrics. */
async function publish(context, ikey, options = { requestOptions: {} }) {
const result = await _publishSend(context, ikey, options);
return _publishDeserialize(result);
}
function _isSubscribedSend(context, ikey, options = { requestOptions: {} }) {
const path = (0, urlTemplate_js_1.expandUrlTemplate)("/QuickPulseService.svc/ping{?api%2Dversion,ikey}", {
"api%2Dversion": context.apiVersion ?? "2024-04-01-preview",
ikey: ikey,
}, {
allowReserved: options?.requestOptions?.skipUrlEncoding,
});
return context
.path(path)
.post({
...(0, core_client_1.operationOptionsToRequestParameters)(options),
contentType: "application/json",
headers: {
...(options?.transmissionTime !== undefined
? { "x-ms-qps-transmission-time": options?.transmissionTime }
: {}),
...(options?.machineName !== undefined
? { "x-ms-qps-machine-name": options?.machineName }
: {}),
...(options?.instanceName !== undefined
? { "x-ms-qps-instance-name": options?.instanceName }
: {}),
...(options?.streamId !== undefined ? { "x-ms-qps-stream-id": options?.streamId } : {}),
...(options?.roleName !== undefined ? { "x-ms-qps-role-name": options?.roleName } : {}),
...(options?.invariantVersion !== undefined
? { "x-ms-qps-invariant-version": options?.invariantVersion }
: {}),
...(options?.configurationEtag !== undefined
? { "x-ms-qps-configuration-etag": options?.configurationEtag }
: {}),
accept: "application/json",
...options.requestOptions?.headers,
},
body: !options["monitoringDataPoint"]
? options["monitoringDataPoint"]
: (0, models_js_1.monitoringDataPointSerializer)(options["monitoringDataPoint"]),
});
}
async function _isSubscribedDeserialize(result) {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
const error = (0, core_client_1.createRestError)(result);
error.details = (0, models_js_1.serviceErrorDeserializer)(result.body);
throw error;
}
return (0, models_js_1.collectionConfigurationInfoDeserializer)(result.body);
}
/** Determine whether there is any subscription to the metrics and documents. */
async function isSubscribed(context, ikey, options = { requestOptions: {} }) {
const result = await _isSubscribedSend(context, ikey, options);
return _isSubscribedDeserialize(result);
}
//# sourceMappingURL=operations.js.map