Blazor WebAssiembly에 Azure Application Insights 추가

4781 단어 Blazor

이른바 Azure Application Insights


Azure Application Insights는 MS의 공용 클라우드 서비스인'MS Azure'에서 제공하는'애플리케이션 성능 관리'서비스 중 하나다.
응용 프로그램에서 발생하는 다양한'상황 데이터'(이하'Tele 양도')를 인터넷을 통해 Azure에 전송, 취합하는 Application Insights 서비스로 실행 중인 응용 프로그램의 감시를 실현한다.
앱 인사이트 서비스에 감각을 보내는 장치를 앱에 끼워 넣으면 아주어 포털 화면에서 이상 탐지, 문제 진단, 사용자 조작을 파악할 수 있다.
상세한 상황은 아래의 공식 문서를 참고하시오.
  • "Azure Application Insights란? Azure Monitor | Microsoft Docts"
  • 그래서 저는 Blazor WebAssiembly 애플리케이션에 Azure Application Insights에 감각을 보내는 장치를 설치해 보려고 합니다.

    BlazorApplication Insights NuGet 패키지 요청 사항


    애플리케이션에서 Azure Application Insights로 원격 전송하는 기능은 Java, Python, Node입니다.Js, 그리고 C#(ASP.NET) 등 대부분의 언어와 처리 시스템이'SDK'를 준비했다.
    따라서 이러한 언어, 처리 시스템에서는 Azure Application Insights의 SDK(한마디로 이러한 언어, 처리 시스템의 프로그램 라이브러리)를 응용 프로그램에 편입시켜 이 SDK가 제공하는 클래스와 함수 등의 코드를 몇 줄로 더해 원격 전송을 설정할 수 있다.
    Blazor WebAssiembly에서도 상황은 같지만 마이크로소프트는 표준적이고 공식적인 SDK를 제공하지 않았다.
    따라서 블라조어 웹어셈블리 애플리케이션에 아주어앱 인사이트의 인덕션 송신 기능을 추가하기 위해서는 현재 아래의 오픈소스(MIT 라이선스)의 누겟 패키지인'블라조어 앱 인사이트'를 사용하는 것이 타당한 상황이다.
  • "NuGet Gallery | BlazorApplicationInsights"
  • 내장 단계는 NuGet으로 포장된 GiitHub 창고(이하 URL)에 기재되어 있습니다.
  • https://github.com/IvanJosipovic/BlazorApplicationInsights
  • 실제로 포함된 결과


    시도, ASP.우리는 NET Core 호스트의 작은 Blazer Web Assembly 프로젝트를 제작하여 상기 GiitHub 창고에 기재된 프로그램에 따라 Azure Application Insights의 감지 송신 기능을 결합시켰다.
    그리고 이 ASP는NET Core 호스트 + Blazor WebAssiembly 응용 프로그램은 포착되지 않는 예외적인 발생 장치를 특별히 설치했다.
    포착되지 않은 예외적인 Azure Application Insights에 기록된 상황을 보고 싶어서요.
    그러면, 우리는 이미 설치를 마쳤고, 응용 프로그램을 구축하여 로컬에서 실행하고, 조작을 하여 포착되지 않는 예외가 발생하게 되었다.
    이를 바탕으로 웹 브라우저에서 Azure 포털 화면https://portal.azure.com/에 로그인하여 Application Insights 대시보드를 열어 여기서 로컬로 실행되고 예외가 발생하는 Blazor Web Assiembly의 감각이 표시되는지 확인합니다.
    또 감각을 보낸 뒤 애플리케이션 인사이트 서비스를 통해 이 감각을 취합한 뒤 아주어 포털 화면에 표시하는 데 몇 분이 소요돼 잠시 대기하고 있다.
    이번에는 아주어 포털 화면의 애플리케이션 인사이트의 블레이드에서'페일루스(실패)'의 카테고리를 열고'브라우저'의 보기로 전환해 봤다.
    따라서 완전히 포착되지 않은 예외의 발생을 기록했다(다음 그림).

    또한 이러한 예외 항목을 선택하여 화면을 열면'어떤 페이지를 통해 이 예외가 발생했는가'의 시간선과 예외에 대한 상세한 정보를 볼 수 있다(아래 그림).

    감상


    'Blazore Application Insights'NuGet 패키지를 사용하면 Blazor WebAssiembly 애플리케이션에서 Azure Application Insights로 감지 전송 기능을 가져올 수 있다.
    그 결과 블라조어 웹애ssiembly 앱에서 포착되지 않은 예외가 발생하더라도 아주어 포털 화면에서 이상이 발생할 때까지의 경과와 예외 정보를 볼 수 있었다.
    다만, 사소한 일이지만 조금 아쉬운 점도 있다.

    예외 정보가 구조화되지 않음


    애저애플리케이션 인사이트에 기록된 예외 정보의 형식상'메시지'와'Exception Type'모두 예외 대상을 모두 문자열화ToString()한 내용으로, 스택 추적을 포함하는 문자열로 기록된 것은 아쉬운 대목이다.

    끼워넣는 절차가 복잡합니까?


    그리고 어렵지는 않지만 조립하는 절차가 좀 많은 것 같아요.
    특히
  • Microsoft 공식 Application Insights JavaScript SDK의 GiitHub 창고README에서 JavaScript 코드를 복사하고 파라미터 부분의 부근,
  • 을 고쳐야 한다.
  • 동일한 NuGet 패키지에 첨부된 JavaScript 파일_content/BlazorApplicationInsights/JsInterop.jsscript 라벨index.html 또는
  • 이러한 JavaScript 공동 작업 주위의 설정은 매우 번거롭다.
    글쎄, Blazor Application Insights NuGet 패키지는 무료로 사용할 수 있는데, 너무 자만하면 벌을 받을 수 있어요.😅
    다만 자신이 제작해 공개한 누젯 포장은'사용자에게 최대한 폐를 끼치지 않도록 하자'는 점을 중요시하며 만들었고, 나름의 성격과 기호도 있어 이런 소회를 갖게 됐다.
    위와 같은 자바스크립트 주변의'불만'에 대해 "이렇게 실행한다면 일은 필요 없겠지?"이런 생각도 있기 때문에 시간과 기회가 있다면 피드백을 하고 싶은 마음이 있다.

    ASP.예외적으로 NET Core 서버 측면이 원인인 경우


    Blazo WebAssiembly 애플리케이션의 호스트 ASP입니다.HttpClient를 사용하여 NET Core 서버 측의 웹 API를 호출할 때 해당 서버 측에서 포착할 수 없는 예외가 발생했을 때 자신이 Azure 포털 화면을 조작하면 브라우저 측은 브라우저 측, 서버 측은 서버 측으로 서로 다른 타임라인에서만 표시할 수 있다.
    Azure Application Insights에서는 SPA 측 페이지 뷰의 기록부터 서버 측까지 예외적으로 발생하는데, 브라우저 측, 서버 측을 통합한 타임라인에서는 볼 수 없나요?
    이것은 Azure Application Insights의 규격인지, 아니면 Blazor Application Insights NuGet 포장의 제한, 경계인지 아직 이 부분의 구분이 명확하지 않다.
    무슨 소식이 있으면 저에게 메시지를 남겨주시면 감사하겠습니다!
    Learn, Practice, Share!

    좋은 웹페이지 즐겨찾기