Monitorowanie aplikacji dla usługi aplikacja systemu Azure i Node.js
Monitorowanie aplikacji internetowych Node.js działających w usługach aplikacja systemu Azure nie wymaga żadnych modyfikacji kodu. Ten artykuł przeprowadzi Cię przez proces włączania monitorowania aplikacji usługi Azure Monitor Szczegółowe informacje i zawiera wstępne wskazówki dotyczące automatyzowania procesu wdrożeń na dużą skalę.
Włącz usługę Application Insights
Najprostszym sposobem włączenia monitorowania aplikacji dla aplikacji Node.js działających w usługach aplikacja systemu Azure jest witryna Azure Portal. Włączenie monitorowania aplikacji w witrynie Azure Portal spowoduje automatyczne instrumentację aplikacji przy użyciu Szczegółowe informacje aplikacji i nie wymaga żadnych zmian w kodzie.
Uwaga
Możesz skonfigurować automatycznie dołączonego agenta przy użyciu zmiennej środowiskowej APPLICATIONINSIGHTS_CONFIGURATION_CONTENT w bloku zmiennej Środowiska usługi App Service. Aby uzyskać szczegółowe informacje na temat opcji konfiguracji, które można przekazać za pośrednictwem tej zmiennej środowiskowej, zobacz Node.js Configuration.
Uwaga
Jeśli zostanie wykryta zarówno automatyczna instrumentacja, jak i instrumentacja ręczna oparta na zestawie SDK, zostaną uznane tylko ustawienia instrumentacji ręcznej. Zapobiega to wysyłaniu zduplikowanych danych. Aby uzyskać więcej informacji, zobacz sekcję rozwiązywania problemów w tym artykule.
Automatycznainstrumentacja za pośrednictwem witryny Azure Portal
Aby uzyskać pełną listę obsługiwanych scenariuszy automatycznegoinstrumentacji, zobacz Obsługiwane środowiska, języki i dostawcy zasobów.
Monitorowanie aplikacji Node.js działających w usłudze aplikacja systemu Azure można włączyć tylko jednym kliknięciem, bez konieczności zmiany kodu. Szczegółowe informacje aplikacji dla Node.js jest zintegrowana z usługą aplikacja systemu Azure Service w systemie Linux — kontenerami opartymi na kodzie i niestandardowymi oraz z usługą App Service w systemie Windows na potrzeby aplikacji opartych na kodzie. Integracja jest dostępna w publicznej wersji zapoznawczej. Integracja dodaje zestaw SDK Node.js, który znajduje się w ogólnie dostępnej wersji.
Wybierz pozycję Aplikacja Szczegółowe informacje w panelu sterowania platformy Azure dla usługi app Service, a następnie wybierz pozycję Włącz.
Wybierz opcję utworzenia nowego zasobu lub wybierz istniejący zasób aplikacji Szczegółowe informacje dla tej aplikacji.
Uwaga
Po wybraniu przycisku OK w celu utworzenia nowego zasobu zostanie wyświetlony monit o zastosowanie ustawień monitorowania. Wybranie pozycji Kontynuuj spowoduje połączenie nowego zasobu aplikacji Szczegółowe informacje z usługą app Service. Spowoduje to również wyzwolenie ponownego uruchomienia usługi App Service.
Po określeniu, który zasób ma być używany, wszystko jest ustawione na przejście.
Konfigurowanie
Agent Node.js można skonfigurować przy użyciu formatu JSON. Ustaw zmienną APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
środowiskową na ciąg JSON lub ustaw APPLICATIONINSIGHTS_CONFIGURATION_FILE
zmienną środowiskową na ścieżkę pliku zawierającą kod JSON.
"samplingPercentage": 80,
"enableAutoCollectExternalLoggers": true,
"enableAutoCollectExceptions": true,
"enableAutoCollectHeartbeat": true,
"enableSendLiveMetrics": true,
...
Pełny zestaw konfiguracji jest dostępny. Wystarczy użyć prawidłowego pliku json.
Włączanie monitorowania po stronie klienta
Aby włączyć monitorowanie po stronie klienta dla aplikacji Node.js, należy ręcznie dodać zestaw JAVAScript SDK po stronie klienta do aplikacji.
Automatyzowanie monitorowania
Aby włączyć zbieranie danych telemetrycznych za pomocą Szczegółowe informacje aplikacji, należy ustawić tylko następujące ustawienia aplikacji:
Definicje ustawień aplikacji
Nazwa ustawienia aplikacji | Definicja | Wartość |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Główne rozszerzenie, które kontroluje monitorowanie środowiska uruchomieniowego. | ~2 w systemie Windows lub ~3 w systemie Linux. |
XDT_MicrosoftApplication Szczegółowe informacje_NodeJS | Flaga do kontrolowania, czy agent Node.js jest uwzględniony. | 0 lub 1 (dotyczy tylko systemu Windows). |
Uwaga
Debuger i debuger migawek nie są dostępne dla aplikacji Node.js
Ustawienia aplikacji usługi App Service z usługą Azure Resource Manager
Ustawienia aplikacji dla usługi aplikacja systemu Azure można zarządzać i konfigurować przy użyciu szablonów usługi Azure Resource Manager. Tej metody można użyć podczas wdrażania nowych zasobów usługi App Service za pomocą automatyzacji usługi Resource Manager lub modyfikowania ustawień istniejących zasobów.
Podstawowa struktura pliku JSON ustawień aplikacji dla zasobu usługi App Service:
"resources": [
{
"name": "appsettings",
"type": "config",
"apiVersion": "2015-08-01",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
],
"tags": {
"displayName": "Application Insights Settings"
},
"properties": {
"key1": "value1",
"key2": "value2"
}
}
]
Na przykład szablonu usługi Resource Manager z ustawieniami aplikacji skonfigurowanymi dla Szczegółowe informacje aplikacji ten szablon może być przydatny. W szczególności zobacz sekcję, która rozpoczyna się w wierszu 238.
Automatyzowanie tworzenia zasobu usługi Application Szczegółowe informacje i łączenia z nowo utworzonym zasobem usługi App Service
Aby utworzyć szablon usługi Resource Manager z domyślnymi ustawieniami usługi Application Szczegółowe informacje, rozpocznij proces tak, jakby zamierzasz utworzyć nową aplikację internetową z włączoną Szczegółowe informacje aplikacji.
Utwórz nowy zasób usługi App Service z żądanymi informacjami o aplikacji internetowej. Włącz Szczegółowe informacje aplikacji na karcie Monitorowanie.
Wybierz pozycję Przejrzyj i utwórz. Następnie wybierz pozycję Pobierz szablon do automatyzacji.
Ta opcja generuje najnowszy szablon usługi Resource Manager ze skonfigurowanymi wszystkimi wymaganymi ustawieniami.
W poniższym przykładzie zastąp wszystkie wystąpienia AppMonitoredSite
swojej nazwy witryny:
Uwaga
W przypadku korzystania z systemu Windows ustaw wartość ApplicationInsightsAgent_EXTENSION_VERSION
~2
. W przypadku korzystania z systemu Linux ustaw wartość ApplicationInsightsAgent_EXTENSION_VERSION
~3
.
{
"resources": [
{
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"properties": {
"siteConfig": {
"appSettings": [
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
},
{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
},
{
"name": "ApplicationInsightsAgent_EXTENSION_VERSION",
"value": "~2"
}
]
},
"name": "[parameters('name')]",
"serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"dependsOn": [
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"microsoft.insights/components/AppMonitoredSite"
],
"apiVersion": "2016-03-01",
"location": "[parameters('location')]"
},
{
"apiVersion": "2016-09-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('location')]",
"properties": {
"name": "[parameters('hostingPlanName')]",
"workerSizeId": "[parameters('workerSize')]",
"numberOfWorkers": "1",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
}
},
{
"apiVersion": "2015-05-01",
"name": "AppMonitoredSite",
"type": "microsoft.insights/components",
"location": "West US 2",
"properties": {
"ApplicationId": "[parameters('name')]",
"Request_Source": "IbizaWebAppExtensionCreate"
}
}
],
"parameters": {
"name": {
"type": "string"
},
"hostingPlanName": {
"type": "string"
},
"hostingEnvironment": {
"type": "string"
},
"location": {
"type": "string"
},
"sku": {
"type": "string"
},
"skuCode": {
"type": "string"
},
"workerSize": {
"type": "string"
},
"serverFarmResourceGroup": {
"type": "string"
},
"subscriptionId": {
"type": "string"
}
},
"$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0"
}
Włączanie za pomocą programu PowerShell
Aby włączyć monitorowanie aplikacji za pomocą programu PowerShell, należy zmienić tylko podstawowe ustawienia aplikacji. Poniższy przykład umożliwia monitorowanie aplikacji dla witryny internetowej o nazwie AppMonitoredSite
w grupie AppMonitoredRG
zasobów . Konfiguruje dane do wysłania 012345678-abcd-ef01-2345-6789abcd
do klucza instrumentacji.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Uwaga
W przypadku korzystania z systemu Windows ustaw wartość Application Szczegółowe informacje Agent_EXTENSION_VERSION na ~2
wartość . W przypadku korzystania z systemu Linux ustaw wartość Application Szczegółowe informacje Agent_EXTENSION_VERSION na ~3
.
$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop
Rozwiązywanie problemów
Poniżej znajduje się nasz przewodnik rozwiązywania problemów krok po kroku dotyczący monitorowania opartego na rozszerzeniu/agencie dla aplikacji opartych na Node.js działających w usługach aplikacja systemu Azure.
Sprawdź, czy
ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość "~2".Przejdź do
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.Upewnij się, że element
Application Insights Extension Status
jestPre-Installed Site Extension, version 2.8.x.xxxx, is running.
Jeśli nie jest uruchomiona, postępuj zgodnie z instrukcjami dotyczącymi włączania usługi Application Szczegółowe informacje monitorowania.
Przejdź do folderu D:\local\Temp\status.json i otwórz status.json.
Upewnij się, że
SDKPresent
ustawiono wartość false,AgentInitializedSuccessfully
wartość true iIKey
mieć prawidłowy klucz iKey.Poniżej znajduje się przykład pliku JSON:
"AppType":"node.js", "MachineName":"c89d3a6d0357", "PID":"47", "AgentInitializedSuccessfully":true, "SDKPresent":false, "IKey":"00000000-0000-0000-0000-000000000000", "SdkVersion":"1.8.10"
Jeśli
SDKPresent
wartość jest prawdziwa, oznacza to, że rozszerzenie wykryło, że jakiś aspekt zestawu SDK jest już obecny w aplikacji i zostanie wycofany.
Jaka jest różnica między metrykami standardowymi z metryk usługi Application Szczegółowe informacje a metrykami usługi aplikacja systemu Azure Service?
Aplikacja Szczegółowe informacje zbiera dane telemetryczne dla żądań wysyłanych do aplikacji. Jeśli błąd wystąpi w usłudze WebApps/WebServer, a żądanie nie dotarło do aplikacji użytkownika, aplikacja Szczegółowe informacje nie ma żadnych danych telemetrycznych.
Czas trwania obliczany serverresponsetime
przez aplikację Szczegółowe informacje nie musi być zgodny z czasem odpowiedzi serwera obserwowanym przez usługę Web Apps. To zachowanie jest spowodowane tym, że aplikacja Szczegółowe informacje liczy czas trwania tylko wtedy, gdy żądanie rzeczywiście dociera do aplikacji użytkownika. Jeśli żądanie jest zablokowane lub umieszczone w kolejce na serwerze WebServer, czas oczekiwania jest uwzględniany w metrykach usługi Web Apps, ale nie w metrykach usługi Application Szczegółowe informacje.
Testowanie łączności między hostem aplikacji a usługą pozyskiwania
Zestawy SDK Szczegółowe informacje aplikacji i agenci wysyłają dane telemetryczne, aby uzyskać pozyskane jako wywołania REST do naszych punktów końcowych pozyskiwania. Możesz przetestować łączność z serwera internetowego lub maszyny hosta aplikacji do punktów końcowych usługi pozyskiwania przy użyciu pierwotnych klientów REST z poziomu programu PowerShell lub poleceń curl. Zobacz Rozwiązywanie problemów z brakującą telemetrią aplikacji w usłudze Azure Monitor Application Szczegółowe informacje.
Informacje o wersji
Aby uzyskać najnowsze aktualizacje i poprawki błędów, zapoznaj się z informacjami o wersji.
Następne kroki
- Monitorowanie usługi Azure Functions przy użyciu Szczegółowe informacje aplikacji.
- Włącz diagnostykę platformy Azure, która ma być wysyłana do usługi Application Insights.
- Monitoruj metryki kondycji usługi, aby upewnić się, że usługa jest dostępna i szybko reaguje.
- Odbieraj powiadomienia o alertach zawsze, gdy wystąpią zdarzenia operacyjne lub metryki przekroczą próg.
- Użyj pozycji Usługa Application Insights dla aplikacji JavaScript i stron sieci Web, aby pobrać telemetrię klienta z przeglądarek, w których odwiedzono stronę sieci Web.
- Omówienie dostępności