Appearance
SAP Cloud Logging β
Store and analyze application logs, metrics, and traces based on OpenSearch.
SAP Cloud Logging service is an instance-based observability service that builds upon OpenSearch to store, visualize, and analyze application logs, metrics, and traces from SAP BTP Cloud Foundry, Kyma, Kubernetes and other runtime environments. For Cloud Foundry and Kyma, it offers an easy integration by providing predefined contents to investigate load, latency, and error rates of the observed applications based on their requests and correlate them with additional data. From Application Logging to Cloud Logging: Service Innovation Guide

Feature | Description |
---|---|
Store observability data | Store observability data from SAP BTP workloads. Ingest logs, metrics, and traces via OpenTelemetry format API. Ingest observability data via JSON format API. Ingest application logs and request logs emitted by Cloud Foundry. |
Configure retention | Persist the ingested observability data for a configurable retention period. Note: This is overruled by size-based curation when the disk runs full. |
View, search, and analyze data | View, search, filter, and analyze observability data in a web-based user interface using predefined dashboards. |
Create custom dashboards | Build and persist custom dashboards to analyze your observability data tailored to your specific requirements. |
Configure notifications | Configure customized notifications derived from the observability data of your applications. |
Manage access | Enable management of users and group-based access using SAP Identity Authentication Service. |
How to get started?
Find relevant SAP Community Blogs.
Cloud Logging vs Application Logging (deprecated) β
π§ = Roadmap
Feature / Capabilities | Cloud Logging | Application Logging |
---|---|---|
πΉ SAP BTP Runtimes | ||
Cloud Foundry | β | β |
Kyma | β | β |
Other (public endpoints) | β | β |
Cross-runtime | β | β |
πΉ Signal Types | ||
Logs | β | β |
Metrics (custom) | β | β |
Cloud Foundry container metrics | π§ | β |
Traces | β | β |
πΉ Ingest Sources | ||
Cloud Foundry | β | β |
Kyma | β | β |
Other (public endpoints) | β | β |
πΉ Ingest Endpoints | ||
CF Syslog over https (RFC5424 Syslog) | β | β |
Json (https) | β | β |
Open Telemetry (grpc) | β | β |
Open Telemetry (https) | π§ | β |
πΉ Dashboarding | ||
Cloud Foundry (pre-build) | β | β |
Kyma (pre-build) | β | β |
Open Telemetry (pre-build) | β | β |
Custom Dashboards | β | β |
πΉ Features | ||
Alerting | β | β |
Anomaly Detection | β | β |
Logging Libraries | β | β |
Instance Labelling | β | β |
πΉ Storage | ||
Custom Retention Period | β | β fixed 7 days |
Autoscaling Storage | β | β |
Autoscaling Ingest | β | β |
Disk compression | π§ | β |
πΉ Authentication /Authorization | ||
Cloud Foundry UAA | β | β |
SAML Integration | β | β |
OIDC | π§ | β |
Fine-grained access-management | β | β |
Mask sensitive fields | β | β |
πΉ Integrations | ||
SAP Cloud ALM | β | β |
Alert Notification service | β | β |
AppRouter Extension
β
js
const logging = require('@sap/logging');
// create SAP Logging Context
const sapLogging = logging.createLogger({ name: 'approuter' });
const sapMiddleware = logging.expressMiddleware();
function requestLogger(req, _res, next) {
// important! mask sensible header data
const { authorization, cookie, ...safeHeaders } = req.headers;
const logEntry = {
written_at: new Date().toISOString(),
level: 'INFO',
component: 'request',
method: req.method,
url: req.originalUrl,
headers: safeHeaders,
query: req.query,
body: req.body // needs body-parser
};
// -> stdout for SAP Cloud Logging
console.log(JSON.stringify(logEntry));
// correlation for follow up services
const context = req.loggingContext.getContext();
context.setCustomField('request', logEntry);
next();
}
module.exports = { sapMiddleware, requestLogger };
Support β
Component Name | Component Description |
---|---|
BC-CP-CLS | Support component for this service |