Monitoring setup on Supported systems without nevisAdmin4
Product Analytics metrics can be viewed on VM using OpenTelemetry agent without using nevisAdmin 4.
Installation
OpenTelemetry agent
Download nevis-opentelemetry-javaagent-<version>.jar from the Nevis portal and save it as /opt/agent/opentelemetry-javaagent.jar
Create the otel.properties file under /var/opt/<service-name>/default/conf in each component.
otel.service.name = <service-name>
otel.traces.sampler=always_on
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
For Java based components, to use the OpenTelemetry agent, extend the JAVA_OPS of the relevant component with:
JAVA_OPTS=(
"-javaagent:/opt/agent/opentelemetry-javaagent.jar"
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/<service-name>/default/conf/otel.properties"
"-Dotel.resource.attributes=service.version=<version>,service.instance.id=<intanceId>"
)
where
service-name: Name of the service, e.g.: nevisidmversion: Version of the service, e.g.: 1.0intanceId: Name of the instance, such as idm-dev
Product Analytic Logger
To enable writing metrics, a new logger must be introduced. In the logging.yml add the following new logger for each component:
Loggers:
Logger:
- name: "ProductAnalytics"
level: "INFO"
Example logging.yml file for nevisAuth:
Configuration:
monitorInterval: 60
Appenders:
RollingFile:
- name: "SERVER"
fileName: "log/esauth4sv.log"
filePattern: "log/esauth4sv.log.%i"
PatternLayout:
pattern: "%d{ISO8601} %-15.15t %mdc{trace_id} %mdc{span_id} %-20.20c %-5.5p %m%n"
Policies:
SizeBasedTriggeringPolicy:
size: "100 MB"
DefaultRolloverStrategy:
max: "9"
Loggers:
Logger:
- name: "ProductAnalytics"
level: "INFO"
- name: "EsAuthStart"
level: "INFO"
- name: "org.apache.catalina.loader.WebappClassLoader"
level: "FATAL"
- name: "org.apache.catalina.startup.HostConfig"
level: "ERROR"
- name: "ch.nevis.esauth.events"
level: "FATAL"
Root:
level: "WARN"
additivity: "false"
AppenderRef:
- ref: "SERVER"
Reading Product Analytics log files
The ProductAnalytics logs can be collected from the components' VMs. Every component creates their product analytics log file under the container's log or logs directory. Here is an example to retrieve the file in the nevisIdm component:
cat <path-to-log-dir>/<service-name>-nevis-product-analytics.jsonl
where
path-to-log-dir: Path of the log directory, e.g.: /var/opt/nevisidm/idm/log/service-name: Name of the service, e.g.: nevisidm
The ProductAnalytics metrics are logged in every 24 hours to the <service-name>-nevis-product-analytics.jsonl