Szolgáltatások monitorozása és diagnosztizálása egy helyi gép fejlesztési beállításánál

A monitorozás, az észlelés, a diagnosztizálás és a hibaelhárítás lehetővé teszi, hogy a szolgáltatások minimális fennakadást okozhassanak a felhasználói élményben. Bár a monitorozás és a diagnosztikák kritikus fontosságúak a tényleges üzembe helyezett éles környezetben, a hatékonyság egy hasonló modell bevezetésétől függ a szolgáltatások fejlesztése során, hogy biztosan működjenek, amikor egy valós beállításra vált. A Service Fabric megkönnyíti a szolgáltatásfejlesztők számára a diagnosztikák implementálását, amelyek zökkenőmentesen működhetnek az egygépes helyi fejlesztési beállítások és a valós éles fürtbeállítások között.

Eseménykövetés Windows rendszeren

A Windows eseménykövetése (ETW) az üzenetek service fabricbeli nyomkövetéséhez ajánlott technológia. Az ETW használatának néhány előnye:

  • Az ETW gyors. Nyomkövetési technológiaként készült, amely minimális hatással van a kódvégrehajtási időkre.
  • Az ETW-nyomkövetés zökkenőmentesen működik a helyi fejlesztési környezetekben és a valós fürtbeállításokban is. Ez azt jelenti, hogy nem kell újraírnia a nyomkövetési kódot, ha készen áll a kód valós fürtön való üzembe helyezésére.
  • A Service Fabric rendszerkódja az ETW-t is használja a belső nyomkövetéshez. Ez lehetővé teszi a Service Fabric-rendszer nyomkövetéseivel összekapcsolt alkalmazás-nyomkövetések megtekintését. Emellett segít könnyebben megérteni az alkalmazáskód és az alapul szolgáló rendszer eseményei közötti szekvenciákat és összefüggéseket.
  • A Service Fabric Visual Studio-eszközök beépített támogatást nyújtanak az ETW-események megtekintéséhez. Az ETW-események akkor jelennek meg a Visual Studio Diagnosztikai események nézetében, ha a Visual Studio megfelelően van konfigurálva a Service Fabrickel.

Service Fabric-rendszeresemények megtekintése a Visual Studióban

A Service Fabric ETW-eseményeket bocsát ki, amelyek segítenek az alkalmazásfejlesztőknek megérteni a platformon zajló eseményeket. Ha még nem tette meg, kövesse az Első alkalmazás létrehozása a Visual Studióban című cikk lépéseit. Ezek az információk segítenek abban, hogy a diagnosztikai események megjelenítője megjelenítse a nyomkövetési üzeneteket tartalmazó alkalmazást.

  1. Ha a diagnosztikai események ablaka nem jelenik meg automatikusan, lépjen a Visual Studio Nézet lapjára, válassza az Egyéb Windows , majd a Diagnosztikai események megjelenítője lehetőséget.

  2. Minden esemény szabványos metaadat-információkkal rendelkezik, amelyekből megtudhatja, hogy az esemény mely csomópontból, alkalmazásból és szolgáltatásból származik. Az események listáját az események ablakának tetején található Események szűrése mezővel is szűrheti. Szűrhet például a csomópontnévre vagy a szolgáltatásnévre. Az esemény részleteinek megtekintésekor az események ablakának tetején található Szüneteltetés gombbal is szüneteltethet, és később folytathatja az események elvesztését.

    Visual Studio Diagnostics Events Viewer

Saját egyéni nyomkövetések hozzáadása az alkalmazás kódjához

A Service Fabric Visual Studio-projektsablonok mintakódot tartalmaznak. A kód bemutatja, hogyan adhat hozzá egyéni alkalmazáskód ETW-nyomkövetéseket, amelyek a Visual Studio ETW megjelenítőjében jelennek meg a Service Fabric rendszer-nyomkövetései mellett. Ennek a módszernek az az előnye, hogy a rendszer automatikusan hozzáadja a metaadatokat a nyomkövetésekhez, és a Visual Studio Diagnosztikai események megjelenítője már konfigurálva van a megjelenítésükre.

A szolgáltatássablonokból (állapot nélküli vagy állapotalapú) létrehozott projektek esetében csak keresse meg az implementációt RunAsync :

  1. A metódus hívása ServiceEventSource.Current.ServiceMessageRunAsync egy példát mutat be egy egyéni ETW-nyomkövetésre az alkalmazáskódból.
  2. A ServiceEventSource.cs fájlban talál egy túlterhelést a ServiceEventSource.ServiceMessage metódushoz, amelyet teljesítménybeli okokból nagy gyakoriságú eseményekhez kell használni.

Az aktorsablonokból létrehozott projektekhez (állapot nélküli vagy állapotalapú):

  1. Nyissa meg a "ProjectName".cs fájlt, ahol a ProjectName a Visual Studio-projekthez választott név.
  2. Keresse meg a kódot ActorEventSource.Current.ActorMessage(this, "Doing Work"); a DoWorkAsync metódusban. Ez egy példa egy alkalmazáskódból írt egyéni ETW-nyomkövetésre.
  3. Az ActorEventSource.cs fájlban a metódus túlterhelést ActorEventSource.ActorMessage talál, amelyet teljesítménybeli okokból nagy gyakoriságú eseményekhez kell használni.

Miután hozzáadta az egyéni ETW-nyomkövetést a szolgáltatáskódhoz, újra létrehozhatja, üzembe helyezheti és futtathatja az alkalmazást, hogy láthassa az esemény(ek)et a Diagnosztikai események megjelenítőjében. Ha az F5-ös hibakereséssel hibakeresést hajt ki az alkalmazáson, a Diagnosztikai események megjelenítője automatikusan megnyílik.

Következő lépések

A fenti alkalmazáshoz a helyi diagnosztikához hozzáadott nyomkövetési kód olyan eszközökkel fog működni, amelyekkel megtekintheti ezeket az eseményeket, amikor az alkalmazást egy Azure-fürtön futtatja. Tekintse meg ezeket a cikkeket, amelyek ismertetik az eszközök különböző lehetőségeit, és ismertetik, hogyan állíthatja be őket.