Utveckling av moln baserade applikationer 2020

Kurs från 2020-08-31 till 2020-10-08

Monitorering av moln applikationer

Lektion 9 av 12, måndag den 28:e september 2020

Målet med denna lektion är att lära hur man kan monitorera/övervaka en molnlösning (med utgångspunkt i Azure). Hur vet man om alt funkar som det ska, vad applikationen kostar och hur mycket last man har på sin applikation.

Lektionsplan

Lektion från kl. 8:30 till kl. 16:30

Lunch 12:00 till 13:00

Lektionsteori

Detta är material (artiklar, videoer, blogs, podcasts etc) som är den teoretiska bas för denna lektion, det antas att du har läst/set/lystnad detta innan lektionen starter.

Logging

Build measure learn!

Monitoring i Azure

Total (106 min):

Bok: Learn Azure In A Month of Lunches

Detta är vilka delar av den frivilliga bok (Learn Azure In A Month of Lunches) som är releavant för denna lektion

Bakgrundsmaterial

Detta är material som är frivillig, och som kan kan används till at få en djupare insikt i dagens ämnen. Oftast förklara det bakgrunden till dagens lektionsteori, går mer på djupet med ämne eller han har en annan vinkel på det samma material.

Logging

Artikel (11 min): DevOps Handbook Summary 2 of 4 - The Second Way

Artikel (16 min): How The Build-Measure-Learn Cycle Really Works

Artikel (4 min): Container group and instance logging with Azure Monitor logs

Artikel (11 min): How Logging Made me a Better Developer

Artikel (14 min): The 10 commandments of logging

Monitoriering i Azure

Artikel (3 min): Start Monitoring Your ASP.NET Core Web Application

Artikel (6 min): Azure Monitor data platform

Artikel (4 min): Monitor and debug

Artikel (5 min): What is Application Insights?

Artikel (24 min): Application Insights API for custom events and metrics

Artikel (9 min): Azure Monitor and Azure Log Analytics: When to Use Which

Video (30 min): Application Insights The Tool You Never Knew You Needed

Video (26 min): Analyzing your applications with Application Insights

Insights Telemetry

Dokumentation (3 min): TelemetryClient Class

Artikel (2 min): Application Insights – Use case for TelemetryClient flush calls

Artikel (2 min): Getting started with Kusto

Andra monitorering system

Homepage: Prometheus

Homepage: InfluxDB - open source time series database

Artikel (7 min): StatsD

Homepage, GitHub repo: StatsD

Buddy uppgifter

Dagens blogg

OBS Akta vad ni skriver i eran blogg, så att ni inte skriver lösenord etc.

Namnge dagens blogg 09.md, ni får själv välja om ni vill ha en stor blogg som innehåller alla dagens övningar, eller om ni delar upp den i fler delar, i så fall ska ni namnge delarna som: 09a.md, 09b.md etc.

Övning 1: Log i applikation

Bygg en konsol applikation som loggar med strukturerat logging, ni väljer själv om ni vill använda .NET Core Logging eller Serilog (som ofta använs i .NET Core applikationer) som logging-provider.

Hints:

Övning 1a: Logg till skärm

Få eran applikation logga till konsolen.

Ett exempel på hur output av eran konsol applikation kan se ut: Console output exempel

static void Main(string[] args)
{
    //TODO: log "Hello World!"
    var rand = new Random();
    bool runApp = true;
    Console.WriteLine("Press any key for pretty exit");
    while(runApp){
        int randomSleep = rand.Next(1, 50);
        //TODO: log "Sleeping for 2.7 seconds"
        //NOTE: use the SleepTimeToSec method to make the randomSleep human readable
        Thread.Sleep(randomSleep*100);
        //TODO: log "Send data to Azure"
        //TODO: send telemetry eg. "Telemetry data"
        if(Console.KeyAvailable){
            Console.ReadKey(true);
            runApp = false;
        }
    }
    //TODO: log "Exit"
}

static double SleepTimeToSec(int sleeptime){
    double realtime = (double)sleeptime / 10;
    return realtime;
}

Övning 1b: Logg till molnet

Utöka så att eran applikation så att den loggar till Azure Applicaion Insights och/eller konsolen.

Få med i eran blogg ett litet Kusto exempel på ni kan query en strukturerat log entry.

Ett exempel på hur eran log kan se ut i Application Insights: Application Insights trace exempel

Övning 2: Webbapplikation

Hints:

Övning 2a: Webb app med logging

Skåpa en webb applikation (en ta en befintlig), och hosta den i en App Service (evt som ett docker image).

Få alla logs + metrics från webb appliktionen att skickas till Azure Application Insights.

Frivilla övningar

Azure Monitor kurs

Gå igenom denna kurs (34 min): Analysera din Azure-infrastruktur med hjälp av Azure Monitor-loggar