In Application Insights, Azure, Functions, Portal, Storage Written by

Azure Functions a skalowalność. Jak działa Application Insights i Live Metrics Stream

Na każdym blogu czy też w oficjalnej dokumentacji Microsoftu możemy przeczytać, jak to Azure Functions potrafi się magicznie skalować. W tym wpisie pokaże wam jak sprawdzić czy wasza aplikacja faktycznie się wyskalowała oraz ile serwerów postawiła.

Podczas tworzenia funkcji z portalu zaznaczmy opcję “Application Insights” i klikamy “Create”.

ekran Azure Functions

Kolejnym krokiem będzie napisanie naszej pierwszej funkcji, która będzie wrzucać do kolejki elementy. Naszym wyzwalaczem będzie zapytanie Http a zadaniem funkcji dodanie obiektu do Azure Storage. Nad samym kodem, który wykonuje to dane zadanie, nie będę się rozpisywał – wszystko jest dostępne na portalu 🙂 Dodając nowy output macie możliwość konfigurować ustawienia danego zadania. Otrzymujecie także dostęp do dokumentacji. Jest ona wystarczająca do stworzenia takiej funkcji. Do zapytania Http polecam użyć Postmana .

ekran Azure Functions 2

Dla tego zadania napisałem drobny kod w c#, który pomógł mi w szybki sposób zapełnić kolejkę 200 tyś. elementami.

Kolejki w Azure Functions

Skoro mamy już naszą kolejkę zapełnioną to najwyższy czas coś z niej ściągnąć. Do tego również użyjemy Azure Functions 🙂 Tworząc ją wybieramy “Queue trigger” jako nasz wyzwalacz. Już na samym stracie podpowiadają nam z jakiego “storage” chcemy pobierać wartości oraz z jakiej kolejki. Klikając “new” Azure sam zaproponuje nam dostępne magazyny danych. Jednak nazwę kolejki musimy już wpisać ręcznie.

ekran Azure Functions 3

Tak naprawdę jest to już koniec konfiguracji. Azure sam zajmie się resztą i ściągnie elementy z kolejki. W tym wypadku nie dodajemy output’a ze względu na to, że chcemy sprawdzić jak skaluje się azure, a nie wykonać jakąś konkretną akcję. Kiedy mamy już dodane elementy do kolejki i gotową funkcję przejdźmy do Application Insights. Co ważne, nie uruchamiajcie funkcji za wcześnie, ponieważ bardzo szybko znikną wam rzeczy z kolejki i nie zobaczycie efektu 😀

Application Insights pozwala nam podejrzeć statystyki naszej usługi. Podłączyć je możecie nie tylko pod Azure Functions, ale również pod WebApp. Już na starcie dostajemy informację, takie jak czas odpowiedzi serwera, błędy 500, czy też ilość requestów w danym czasie. To co nas najbardziej interesuje to “Live Metrics Stream”. Usługa pokazuje w czasie rzeczywistym, co się dzieje z naszą aplikacją. Kiedy klikniemy na zaznaczony guzik ukaże się nam plansza, która informuje, że coś nie działa. Spokojnie, teraz jest czas, aby uruchomić naszą funkcję :).

ekran Azure Functions 4

W górnej części zdjęcia widzimy ilość serwerów online, natomiast w dolnej faktyczne zużycie danych przez konkretny serwer. Po prawej stronie mamy wpisane logi, a w centrum dokładniejsze informacje od tych, które były na pierwszej stronie.

Testując Azure pod względem skalowalności, stworzyłem kolejkę mającą ponad 200 tyś. elementów. Azure postawił mi wtedy 8 serwerów, gdzie każdy ściągał około 250 requestów/s.  Co najlepsze, nie zapłaciłem za to nic 🙂

(Visited 16 times, 1 visits today)

Last modified: 10 maja 2022

Close