Logging afspraken
Dit document dient als input voor de technische specificaties die nodig zijn voor de nieuwe afspraken over centrale logging in het MedMij Afsprakenstelsel (in dit document aangeduid als: 'afsprakenstelsel'). Dit document bestaat uit de Business Requirements, de logvelden en de indicatoren ter monitoring.
De Business Requirements beschrijven de wensen achter de nieuwe afspraken over centrale logging. De logvelden beschrijven vervolgens welke velden centraal gelogd moeten worden door de deelnemers om aan deze Business Requirements te kunnen voldoen. Tot slot laten de indicatoren zien welke monitoring plaats kan vinden als de centrale logging is geïmplementeerd.
1. Scope
Op 9 mei 2023 moeten de afspraken over centrale logging in de nieuwe release van het afsprakenstelsel geschreven worden. Dit betekent dat deze afspraken daarvoor uitgewerkt moeten zijn. Vanwege de beperkte tijd is er daarom gekozen om bepaalde onderwerpen binnen (MVP) en buiten (na MVP) de scope van de release op 9 mei te plaatsen. De wensen die voor de release van 9 mei moment buiten de scope liggen worden op een later moment toegevoegd aan het afsprakenstelsel. Deze fasering zorgt ervoor dat we de centrale logging wel op 9 mei kunnen doorvoeren en het werk behapbaar maken voor de deelnemers.
1.1. MVP in de release van 9 mei
In de MVP gaat het om het opzetten van de basisstructuur voor de centrale logging waar de eerste inzichten uitgehaald kunnen worden. Zie Plan van Aanpak van dit project voor de scope.
1.2. Fase 2
Voor fase 2 staat in ieder geval op de planning:
Definitie van wat OK en NOK is
Een uitbreiding van de lijst van statussen om meer inzicht te krijgen in de reden achter verstoringen
PING berichten om de bereikbaarheid van zorgaanbieders en PGO's te testen
1.3. Fase 3
2. Randvoorwaarden
Er zijn enkele randvoorwaarden nodig om succesvol te loggen:
DVA's en DVP's loggen dit beiden zodat er inzicht komt in waar de berichten fout gaan
Decentraal wordt er real-time gelogd (door de DVA's en DVP's) en centraal wordt er dagelijks gelogd (het versturen van de gegevens naar MedMij)
3. Business Requirements
Deze Business Requirements beschrijven de wensen voor de centrale logging. De wensen zijn onderverdeeld in 3 thema's; het verkeer (de business-as-usual), verstoringen en trends. Om prioritering aan te brengen in deze requirements is de MoSCoW methode gebruikt. De prioriteringscategorieën zijn als volgt:
Must have: dit is een vereiste om het project te laten slagen.
Should have: dit is geen kritische eis, maar nog steeds erg belangrijk.
Could have: dit is geen eis, maar wel een wens.
Would have: dit is een wens die in de toekomst vervuld kan worden.
3.1. Verkeer
Nr. | Business Requirement | Prioriteit | Bijbehorende Logvelden |
---|---|---|---|
1. | Inzicht in het verkeer tussen de schakels in het afsprakenstelsel. | Must have | Trace_ID |
2. | Inzicht in het verkeer per gegevensdienst tussen de schakels in het afsprakenstelsel. | Must have | Service_ID |
3. | Inzicht in het verkeer per processtap (autorization, token, resource) tussen de schakels in het afsprakenstelsel. | Must have | Event_type |
4. | Inzicht in de specifieke deelnemers waar het verkeer tussen plaatsvindt. | Should have | Client_ID, Server_ID en Provider_ID |
5. | Inzicht in de responstijd van de schakels in het afsprakenstelsel. | Should have | Datetime |
6. | Inzicht in de beschikbaarheid van de schakels in het afsprakenstelsel. | Could have | NTB |
7. | Inzicht in of de schakels in het afsprakenstelsel voldoen aan de ketennorm. | Would have | NTB (ketennorm moet eerst bepaald worden) |
8. | Inzicht in het verkeer per ZIBs tussen de schakels in het afsprakenstelsel |
3.2. Verstoringen
Nr. | Business Requirement | Prioriteit | Bijbehorende logvelden |
---|---|---|---|
1. | Inzicht in het percentage berichten dat onsuccesvol uitgewisseld wordt tussen de schakels in het afsprakenstelsel. | Must have | Status |
2. | Inzicht in het percentage succesvolle verzoeken die uitgewisseld worden tussen de schakels in het afsprakenstelsel (de verzoeken die het einde van de keten succesvol bereiken). | Must have | Status en Trace_ID |
3. | Inzicht in bij welke DVA's en DVP's verstoringen plaatsvinden tussen de schakels in het afsprakenstelsel. | Must have | Status, Client_ID en Server_ID |
4. | Inzicht in bij welke stap in het proces verstoringen plaatsvinden tussen de schakels in het afsprakenstelsel. | Must have | Status en Event_type |
5. | Inzicht in bij welke PGO's en zorgaanbieders verstoringen plaatsvinden tussen de schakels in het afsprakenstelsel. | Should have | Status, Provider_ID en Client_ID |
6. | Tijdig inzicht in verstoringen in het verkeer tussen de schakels in het afsprakenstelsel. | Should have | Status, Client_ID, Server_ID en Provider_ID |
7. |
| Could have | NTB |
8. | Inzicht in het percentage berichten dat onsuccesvol uitgewisseld wordt per gegevensdienst tussen de schakels in het afsprakenstelsel. | Must have | Status en Service_ID |
9. | Tijdig actie kunnen ondernemen bij verstoringen in het verkeer tussen de schakels in het afsprakenstelsel. | Could have | Status, Client_ID, Server_ID en Provider_ID |
10. | Inzicht in de oorzaken van verstoringen in het verkeer tussen de schakels in het afsprakenstelsel. | Could have | Status |
11. | Inzicht in de niet-geslaagde ophalingen van de schakels in het afsprakenstelsel. | Would have | Status |
3.3. Trends over tijd
Nr. | Business Requirement | Prioriteit | Bijbehorende logvelden |
---|---|---|---|
1. | Inzicht in de trends in het verkeer tussen de schakels in het afsprakenstelsel. | Must have | Client_ID, Server_ID |
2. | Inzicht in de trends van het aantal verstoringen tussen de schakels in het afsprakenstelsel. | Must have | Status |
3. | Inzicht in bij welke stap in het proces structureel verstoringen plaatsvinden tussen de schakels in het afsprakenstelsel. | Must have | Event_type en Status |
4. | Inzicht in bij welke gegevensdiensten structureel verstoringen plaatsvinden tussen de schakels in het afsprakenstelsel. | Must have | Status en Service_ID |
5. | Inzicht in bij welke deelnemers structureel verstoringen plaatsvinden tussen de schakels in het afsprakenstelsel. | Should have | Status, Client_ID, Server_ID en Provider_ID |
6. | Inzicht in de structurele oorzaken van verstoringen in het verkeer tussen de schakels in het afsprakenstelsel | Could have | Status |
Waar mogelijk filtering op:
Per gegevensdienst,
Totaal aantal gegevensdiensten
Per DVP,
Totaal alle DVP's
Per DVA,
Totaal alle DVA's
Per Zorgaanbieder,
Totaal alle Zorgaanbieders
Per combinaties van DVA x en DVP x,
Per combinatie DVA x en Zorgaanbieder x
Type resource
4. Logvelden (attributen)
Dit hoofdstuk beschrijft de logvelden die door de deelnemers naar MedMij gestuurd moeten worden. Per logveld is beschreven;
De naam van het logveld
Voor welke processtap het logveld verstuurd moet worden
Een toelichting van wat er in het logveld staat
De prioriteitscategorie (zie vorige hoofdstuk voor uitleg methode)
Uit welke business requirement dit logveld voortkomt
Logveld | Technische uitwerking | Toelichting | Prioriteit | Business Requirements |
---|---|---|---|---|
Session_ID | Request "ID" | Unieke id voor de sessie. | Must have | Alle |
Client_ID | Event "location": waar het event plaatsvindt | ID van de deelnemer die het bericht richting MedMij logt. Afhankelijk van de processtap waar het bericht over gaat is dit de verzender of ontvanger van het bericht. Voor DVP kan je dit afleiden uit client_id en voor DVA kan je dit afleiden uit de FQDN. | Must have | 1.4, 2.3, 2.6, 2.5, 2.9 en 3.5 |
Server_ID | Event "uri": waar het event naartoe gaat | ID van de deelnemer met wie het bericht wordt uitgewisseld. Afhankelijk van de processtap waar het bericht over gaat is dit de verzender of ontvanger van het bericht. | Must have | 2.3, 2.6, 2.9 en 3.5 |
Event_type | Event "type" | Beschrijving van het bericht (receive, respond, send) | Must have | 1.3, 2.4 en 3.3 |
Service_ID | ID van de gegevensdienst die opgevraagd/verstuurd wordt. | Must have | 1.2 en 3.4 | |
Request_ID | MedMij_Request_ID uit het huidige afsprakenstelsel | Must have | ||
Status | Status "code" | HTTP code van het bericht | Must have | 2.1 - 2.6 en 3.2 - 3.6 |
Datetime | Event "date time" | Datum en tijdstip van het verzenden ofwel ontvangen van het bericht. | Must have | 1.5 |
Provider_ID | ID van de (zorg)aanbieder achter de DVA waarmee berichten worden uitgewisseld. | Should have | 1.4, 2.5, 2.6, 2.9 en 3.5 | |
Location | Partij waar de event type plaatsvindt | Must have | Alle | |
Trace_ID | Trace ID | Unieke id voor het Trace dat tijdens meerdere processtap hetzelfde blijft, om aan te duiden dat de berichten bij hetzelfde Trace horen. | Should have | 1.1 en 2.8 |
URI | URI | Check of de URI een bij MedMij bekende URI is. | Must have | |
Redirect URI | Terugverwijzing | Must have | ||
State | onderdeel van Oauth2.0 | Must have | ||
Response_type | Wat wordt teruggestuurd n.a.v. succesvolle authorization. | Must have | ||
Information | Welkel ZIB's er zijn verzameld |
4.1. Logvelden per MoSCoW prioriteit
In onderstaande tabel is met groen aangegeven in welke fase van de omschreven business requirements de verschillende logvelden gebruikt worden. Gezien in de scope is bepaald dat logvelden binnen 'must have' en 'should have' onderdeel zijn van MVP binnen dit project (zie paragraaf 1.1), zullen alle logvelden in deze fase worden opgevraagd bij de deelnemers.
| Must | Should | Could | Would |
Session_ID | | | | |
Client_ID | | | | |
Server_ID | | | | |
Event_type | | | | |
Service_ID | | | | |
Request_ID | | | | |
Status | | | | |
Datetime | | | | |
Provider_ID | | | | |
Location | | | | |
Trace_ID | | | | |
URI | | | | |
Redirect URI | ||||
State | ||||
Response_type | ||||
ZIBs |
5. Indicatoren
Nr. | Omschrijving indicator | Vervult Business Requirement | Gebruikt de logvelden |
---|---|---|---|
1. | Aantal berichten die succesvol uitgewisseld zijn (over tijd) | 1.1 | Trace_ID, Event_Type en Datetime, Status |
2. | Het succespercentage (over tijd) | 1.1 | Trace_ID, Event_Type en Datetime |
3. | Aantal succesvolle uitwisselingen per gegevensdienst (over tijd) | 1.2 | Trace_ID, Event_Type, Datetime en Service_ID |
4. | Het succespercentage per gegevensdienst (over tijd) | 1.2 | Trace_ID, Event_Type, Datetime en Service_ID |
5. | Aantal berichten die succesvol verstuurd en ontvangen zijn per processtap (over tijd) | 1.3 | Trace_ID, Event_Type, Datetime en Processtap_ID |
6. | Het succespercentage per processtap (over tijd) | 1.3 | Trace_ID, Event_Type, Datetime en Processtap_ID |
7. | Het succespercentage per DVA en Zorgaanbieder (over tijd) | 1.4 | Trace_ID, Event_Type, Datetime, Client_ID en Provider_ID |
8. | Het succespercentage per DVP en PGO (over tijd) | 1.4 | Trace_ID, Event_Type, Datetime en Client_ID |
9. | Aantal berichten (marktaandeel) per DVA en Zorgaanbieder (over tijd) | 1.4 | Trace_ID, Event_Type, Datetime, Client_ID en Provider_ID |
10. | Aantal berichten (marktaandeel) per DVP en PGO (over tijd) | 1.4 | |
10a. | Aantal berichten (marktaandeel) per combinatie van DVP en DVA (over tijd) | 1.4 | Trace_ID, Event_Type, Datetime en Client_ID |
11. | Gemiddelde responstijd van berichten per DVA en DVP (over tijd) | 1.5 | Trace_ID, Event_Type, Datetime en Client_ID |
12. | Aantal berichten dat binnen de norm van de responsetijd zijn aangekomen (over tijd) | 1.5 | Trace_ID, Event_Type en Datetime |
13. | Aantal dagen zonder verstuurde berichten per DVA en DVP (over tijd) | 1.6 | Trace_ID, Event_Type, Datetime en Client_ID |
14. | Aantal berichten per processtap die niet succesvol verstuurd zijn (over tijd) | 2.1 + 2.6 + 2.9 + 3.2 | Trace_ID, Event_Type, Datetime en Status |
15. | Het uitvalpercentage voor berichten (over tijd) | 2.1 + 2.6 + 2.9 + 3.2 | Trace_ID, Event_Type, Datetime en Status |
16. | Aantal berichten die niet succesvol het einde van de keten bereiken (over tijd) | 2.2 + 2.6 + 2.9 + 3.2 | Trace_ID, Event_Type, Datetime, Trace_ID en Status |
17. | Het uitvalpercentage voor de keten (over tijd) | 2.2 + 2.6 + 2.9 + 3.2 | Trace_ID, Event_Type, Datetime, Trace_ID en Status |
18. | Het uitvalpercentage per DVA en Zorgaanbieder (over tijd) | 2.3 + 2.5 + 2.6 + 2.9 + 3.5 | Trace_ID, Event_Type, Datetime, Client_ID, Provider_ID en Status |
19. | Het uitvalpercentage per DVP en PGO (over tijd) | 2.3 + 2.5 + 2.6 + 2.9 + 3.5 | Trace_ID, Event_Type, Datetime, Client_ID en Status |
19a. | Het uitvalpercentage per combinatie van DVP en DVA (over tijd) | ||
20. | Het uitvalpercentage per processtap (over tijd) | 2.4 + 2.6 + 2.9 + 3.3 | Trace_ID, Event_Type, Datetime, Client_ID, Processtap_ID en Status |
21. | Het aantal berichten per status (over tijd); zowel response- als error status en combinatie hiervan | 2.6 + 2.9 + 2.10 + 3.6 | Trace_ID, Event_Type, Datetime en Status (in de toekomst gaan statussen aangevuld worden met meer oorzaken) |
22. | Het uitvalpercentage per gegevensdienst (over tijd) | 2.8 + 3.4 | Trace_ID, Event_Type, Datetime, Status en Service_ID |
5.1. Ontwerpen
Hieronder is bovengenoemde lijst aan indicatoren uitgewerkt in een aantal visuele onderwerpen.
Wijzigingen in logvelden/veldnamen:
Naam oud | Naam nieuw | Reden |
---|---|---|
Bericht_ID | Trace_ID + Event_Type | technische mogelijkheden |
Eigenaar_ID, PGO_ID | Client_ID | uniformiteit |
Partner_ID | Server_ID | Uniformiteit |
Processtap | Event_type | |
Event_DateTime | DateTime | Uniformiteit |
Aanbieder_ID (ZorgProvider_ID) | Provider_ID | Engels |
Gegevensdienst_ID | Service_ID | Engels |
ZIBs | Information |