executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
btp-cloud-loggingSAP BTP Cloud Logging — OpenSearch-based centralized logging with structured logs, correlation IDs, Kibana dashboards, and retention management.
Independent GitHub snapshot · Automated classification · Original documentation governs
Centralized observability on SAP BTP powered by OpenSearch + Kibana dashboards.
cf create-service cloud-logging standard my-logging
cf bind-service my-app my-logging
cf restage my-app
Verify the binding appears in VCAP_SERVICES:
cf env my-app | grep -A 20 cloud-logging
const cds = require('@sap/cds')
const LOG = cds.log('procurement')
LOG.info('Order created', { orderId: 'ORD123', userId: 'USER1', duration: 245 })
LOG.error('BAPI call failed', new Error('Connection timeout'))
Log entries appear in OpenSearch with fields: correlation_id, component, level, message, custom_fields.
const { trace } = require('@opentelemetry/api')
const tracer = trace.getTracer('procurement-service')
async function processOrder(orderId) {
const span = tracer.startSpan('processOrder')
span.setAttribute('order.id', orderId)
try {
await callBapi(orderId)
span.setStatus({ code: trace.SpanStatusCode.OK })
} catch (e) {
span.setStatus({ code: trace.SpanStatusCode.ERROR, message: e.message })
span.recordException(e)
} finally {
span.end()
}
}
import logging
from sap_cloud_logging import CloudLoggingHandler
logger = logging.getLogger('my-btp-app')
handler = CloudLoggingHandler(
component='procurement',
correlation_id=request.headers.get('X-Correlation-ID')
)
logger.addHandler(handler)
logger.info('Processing batch', extra={'batch_size': 1000})
# Errors for a specific order
component:"procurement" AND level:"error" AND custom_fields.orderId:"ORD123"
# Slow requests over 5 seconds
response_time:>5000
# All activity by user in last 24h
custom_fields.userId:"USER1" AND @timestamp:>now-24h
Logs not appearing immediately
Free tier logs silently dropped
Correlation ID missing across services
X-Correlation-ID header is not propagated between service calls.Inconsistent component names
procurement, fulfillment) across all instances.Logs are immutable
# Confirm service instance is created
cf services | grep my-logging
# Confirm binding exists
cf services | grep my-app
# Check app logs are flowing (from app side)
cf logs my-app --recent | grep "procurement"
# Open Kibana dashboard from BTP Cockpit:
# Subaccount → Instances → my-logging → Open Dashboard
# Run: component:"procurement" AND level:"info"