Я установил пакет applicationinsights-native-metrics, упомянутый здесь: https://learn.microsoft.com/en-us/azure/azure-monitor/app/nodejs
Я предполагаю, что мое приложение генерирует метрики, упомянутые в статье, но я не могу понять, как просмотреть их в Application Insights. Любые указатели будут с благодарностью оценены.
Мне было предложено увидеть новое пространство имен в Обозревателе метрик в Application Insights под названием «Расширенные метрики Node.js», но я этого не вижу.
В документации сказано, что вам просто нужно установить пакет. После того, как это не сработало, я попробовал явно потребовать это в приложении. Ни то, ни другое не сработало.
@Matt Brown Даже я не нашел в коде этого пространства имен расширенных метрик Node.js после установки пакета applicationinsights-native-metrics
.
@Aslesha Kantamsetti Интересно - спасибо за ответ. Если это так, то я не знаю, как добраться до показателей, которые предположительно собирает этот пакет.
@Matt Brown Вы ищете это?
@AsleshaKantamsetti, возможно, это так. Каково там полное имя пространства имен и как вам удалось его реализовать?
@Matt Brown Полное имя пространства имен — azure.appinsights, я получил его с кодом и собственным пакетом метрик.
Используя приведенный ниже код и пакет applicationinsights-native-metrics, я сгенерировал метрики, как указано в этом документе.
Я выполнил приведенные ниже команды для установки пакетов.
npm install applicationinsights
npm install applicationinsights-native-metrics
сервер.js:
let appInsights = require("applicationinsights");
let http = require("http");
const connectionString = '<ConnectionString>';
appInsights.setup(connectionString).start();
const port = process.env.PORT || 3000;
let client = appInsights.defaultClient;
client.trackEvent({ name: "my custom event", properties: { customProperty: "custom property value" } });
client.trackException({ exception: new Error("handled exceptions can be logged with this method") });
client.trackMetric({ name: "custom metric", value: 3 });
client.trackTrace({ message: "trace message" });
client.trackDependency({
target: "http://dbname",
name: "select customers proc",
data: "SELECT * FROM Customers",
duration: 231,
resultCode: 0,
success: true,
dependencyTypeName: "ZSQL"
});
client.trackRequest({
name: "GET /customers",
url: "http://myserver/customers",
duration: 309,
resultCode: 200,
success: true
});
http.createServer((req, res) => {
client.trackNodeHttpRequest({ request: req, response: res });
if (req.url === '/customers') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: "Customers endpoint" }));
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end("Not Found");
}
}).listen(port, () => {
console.info('Server is running on port '+port);
});
пакет.json:
{
"name": "nodeappinsights",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@azure/monitor-opentelemetry-exporter": "^1.0.0-beta.24",
"@azure/opentelemetry-instrumentation-azure-sdk": "^1.0.0-beta.5",
"@opentelemetry/auto-instrumentations-node": "^0.47.1",
"@opentelemetry/instrumentation": "^0.52.0",
"@opentelemetry/sdk-node": "^0.52.0",
"@opentelemetry/sdk-trace-node": "^1.25.0",
"applicationinsights": "^2.9.5",
"applicationinsights-native-metrics": "^0.0.10",
"express": "^4.19.2"
}
}
После выполнения команды ниже:
node server.js
Я мог бы просмотреть журналы в поиске транзакций Application Insights на портале Azure, как показано ниже:
В Application Insights перейдите в раздел «Мониторинг», выберите «Метрики», в пространстве имен метрик в разделе «Пользовательские» выберите azure.applicationinsights, как показано ниже.
После обновления вышеуказанного пространства имен метрик вы сможете увидеть приведенные ниже метрики.
Спасибо за ответ. Вот что я вижу для этого пространства имен: [ссылка]imgur.com/a/CpgYBR6 Я постараюсь покопаться в этом позже сегодня.
@MattBrown Вы пробовали мой код? Убедитесь, что вы правильно установили applicationinsights-native-metrics, так как у меня он работает нормально.
Да. Изолированное приложение, установило 2 пакета, точно использовало ваш код (подключив строку подключения). При вызове start() я получаю ряд предупреждений/ошибок: Модуль @azure/core-tracing был загружен раньше… инициализируйте его, прежде чем требовать @azure/core-tracing. Ошибка: @opentelemetry/api: регистрация версии v1.9.0. для трассировки не соответствует ранее зарегистрированному API v1.8.0 «Не удалось добавить SpanProcessors в TracerProvider». Метрики выглядят так же, как те, которые я опубликовал вчера. Я попробую минимизировать код и разобраться в некоторых из этих ошибок.
@MattBrown Я добавил Package.json в решение, проверьте его один раз.
Согласование версий пакетов помогло. Большое спасибо за подробные ответы.
@MattBrown Я рад слышать, что проблема решена.
Для меня работала только версия applicationinsights 2.9.5, и мне не пришлось добавлять другие зависимости. Однако я получил ту же ошибку, используя последнюю версию.
Вы можете проверить статистику приложения в разделе «Поиск транзакций».Изображение