Observability

Colectica Portal supports observability using both structured logs and OpenTelemetry. Structured log events are written for all REST API requests, page loads, and other user activities. Structured logs and OpenTelemetry can be imported into various log analysis systems.

Collect OpenTelemetry

OpenTelemetry reporting can be enabled by setting the OpenTelemetry:Enabled settings in appsettings.json. The Colectica Repository will report OpenTelemetry for all HTTP client calls, Elasticsearch integration, database access, and individual web requests. OpenTelemetry exporter options are controlled via the standard environmental variables. For more details on editing these settings, see deployment/configuration.

Structured Logs

Structured logs can be written to disk or POSTed to an HTTP end point. To configure where structured logs are written, use the Serilog:StructuredDiskLocation and Serilog:HttpLocation settings in appsettings.json. For more details on editing these settings, see deployment/configuration.

External Log Dashboards

If your logs are ingested into a log analysis system that provides a dashboard, you can link to that dashboard from the Colectica Portal administration dashboard. Use the Admin:ExternalDashboardUrl setting in appsettings.json to configure this. For more details on editing these settings, see deployment/configuration.

Elasticsearch, Logstash, and Kibana

One commonly used platform for ingesting, storing, and analyzing log files is the ELK stack: Elasticsearch, Logstash, and Kibana.

A sample Kibana dashboard configuration is included with the Colectica Portal package. It can be found at PortalDir/Config/kibana-dashboard.json.

For more information, see https://www.elastic.co/what-is/elk-stack.