Software observability