Spring AOP (Aspect-Oriented Programming | | | Default logging level of “logging.level.org.onap.cps” is set to “INFO”. to change this, set line 194 (logging.level.org.onap.cps to DEBUG) Changing logging level dynamically see Change logging level
| can control easily which packages and/or methods to run by changing the constants no repetitive code for debugging all method performances to see when methods are executed, their parameters, return values etc. note that there might be degradation in performance when enabled “@Around"/@Before/@After annotation takes other expressions to specify to Spring which methods you want to monitor , can be based on their name, parameters, or return type…examples: @Around("execution(* org.thirdparty.library.*.*(..))") - only intercepts methods of the given library @Around("execution(*org.onap.cps.*.*(org.onap.TrustLevel))") - only intercepts methods with TrustLevel as first parameter
|
MicroMeter | allows to collect metrics with use of annotation integrates with Spring boot Actuator TimedAspect (micrometer class) uses AOP Annotation and set up
| | | |
OpenTelemetry | end-to-end tracing (tracing requests across services) OpenTelemetry - open-source set of APIs, libraries, agents, and instrumentation to monitor application. Allows to collect metrics, logs, and traces Jaeger - open-source distributed tracing system used with OpenTelemetry to visualise traces and understand flow of requests ** we use OpenTelemetry to send trace data to Jaeger and view it in Jaeger UI Annotation and set up OpenTelemetryConfig.java serviceId : states the application to be monitored tracingExporterEndpointUrl : (OpenTelemetry collector endpoint) this is where traced data by openTelemetry will be exported jaegerRemoteSamplerUrl : (remote sampler endpoint) this controls the sampling trace behaviour
| | | ** Trace shows the journey of the request flow. It is made up of spans which shows each operations ** Each span has metadata: id ,start and end time, operation name (i.e. HTTP GET), status code, response time etc..
What gets traced? HTTP Requests (Inbound) when requests comes in , trace is generated. The span for this could have http method, url path, status code, time taken to process the request etc…
Internal Rest Calls (Outbound) when cps makes an outbound http call to another service , trace is created. span can include url of the called service,http method, status code, duration of the call
Database Queries Method Calls within Your Application (Service Layer) Asynchronous Operations External System Calls Error Handling (Exceptions)
|