Loggning
Bibliotek som används för loggning är org.jboss.logging
Logg-nivåer beskrivs under “10.2. Logging Levels”: Chapter 10. Logging Conventions
Användning i koden:
@Inject
Logger log;
log.error("Unexpected exception occured when we tried to call CitizenMapping with personId" + personId, exception);
Kom ihåg att skriva ut information som kan vara av nytta vid eventuell felsökning. Inkludera information som gör det möjligt att felsöka problemet i efterhand. Kontexten är väldigt viktig att inkludera i loggningen.
Graylog
Vi skickar loggarna till Graylog och för att konfigurera detta krävs några rader i docker-compose.yml, här kommer ett exempel:
version: '2'
services:
ms-casemanagementservice-test:
container_name: ms-casemanagementservice-test
logging:
driver: "syslog"
options:
syslog-address: "udp://172.16.254.6:5140"
tag: "ms-casemanagementservice-test"
“tag” ska sättas namnsättas enligt följande format: <applikationsnamn>-<version>
Följande versioner ska användas:
production
test
sandbox
I graylog kan man sedan filtrera loggarna med hjälp av denna tag och loggnivå. Exempel:
source:ms-casemanagementservice-test* && ERROR
Spårningsinformation.
Hur kan vi använda exempelvis OpenTracing och W3C Trace Context. Trace Context för att öka observerbarheten på våra system?
Aggregering och visualisering
Hur samlas loggar och telemetri ihop, hur visualiseras det och hur kan vi använda oss av det för att proaktivt se till att systemet mår bra och reaktivt agera snabbt med bra information när något går fel?