CloudFoundry

Status: Experimental

Useful resources to understand CloudFoundry metadata:

CloudFoundry organizes application deployments (apps) by spaces contained in organizations (orgs). Names are unique only in their respective enclosing entity. Ids are unique in the entire CloudFoundry installation. Different instances of the same application are separated by an integer index. Apps can consist of a main job and multiple tasks and side-cars, which can be distinguished by different process attributes.

CloudFoundry can also emit signals from system components. They use a different approach as applications, since they are not organized into orgs and spaces. They align with the Bosh deployment tool of CloudFoundry.

Organization

Status: Experimental

type: cloudfoundry.org

Description: The organization of the application which is monitored.

AttributeTypeDescriptionExamplesRequirement LevelStability
cloudfoundry.org.idstringThe guid of the CloudFoundry org the application is running in. [1]218fc5a9-a5f1-4b54-aa05-46717d0ab26dRecommendedExperimental
cloudfoundry.org.namestringThe name of the CloudFoundry organization the app is running in. [2]my-org-nameRecommendedExperimental

[1]: Application instrumentation should use the value from environment variable VCAP_APPLICATION.org_id. This is the same value as reported by cf org <org-name> --guid.

[2]: Application instrumentation should use the value from environment variable VCAP_APPLICATION.org_name. This is the same value as reported by cf orgs.

Space

Status: Experimental

type: cloudfoundry.space

Description: The space of the application which is monitored.

AttributeTypeDescriptionExamplesRequirement LevelStability
cloudfoundry.space.idstringThe guid of the CloudFoundry space the application is running in. [1]218fc5a9-a5f1-4b54-aa05-46717d0ab26dRecommendedExperimental
cloudfoundry.space.namestringThe name of the CloudFoundry space the application is running in. [2]my-space-nameRecommendedExperimental

[1]: Application instrumentation should use the value from environment variable VCAP_APPLICATION.space_id. This is the same value as reported by cf space <space-name> --guid.

[2]: Application instrumentation should use the value from environment variable VCAP_APPLICATION.space_name. This is the same value as reported by cf spaces.

Application

Status: Experimental

type: cloudfoundry.app

Description: The application which is monitored.

AttributeTypeDescriptionExamplesRequirement LevelStability
cloudfoundry.app.idstringThe guid of the application. [1]218fc5a9-a5f1-4b54-aa05-46717d0ab26dRecommendedExperimental
cloudfoundry.app.namestringThe name of the application. [2]my-app-nameRecommendedExperimental

[1]: Application instrumentation should use the value from environment variable VCAP_APPLICATION.application_id. This is the same value as reported by cf app <app-name> --guid.

[2]: Application instrumentation should use the value from environment variable VCAP_APPLICATION.application_name. This is the same value as reported by cf apps.

Process

Status: Experimental

type: cloudfoundry.process

Description: The process of the application which is monitored.

AttributeTypeDescriptionExamplesRequirement LevelStability
cloudfoundry.process.idstringThe UID identifying the process. [1]218fc5a9-a5f1-4b54-aa05-46717d0ab26dRecommendedExperimental
cloudfoundry.process.typestringThe type of process. [2]webRecommendedExperimental

[1]: Application instrumentation should use the value from environment variable VCAP_APPLICATION.process_id. It is supposed to be equal to VCAP_APPLICATION.app_id for applications deployed to the runtime. For system components, this could be the actual PID.

[2]: CloudFoundry applications can consist of multiple jobs. Usually the main process will be of type web. There can be additional background tasks or side-cars with different process types.

Cloud Foundry System Component

Status: Experimental

type: cloudfoundry.system

Description: The system component which is monitored.

AttributeTypeDescriptionExamplesRequirement LevelStability
cloudfoundry.system.idstringA guid or another name describing the event source. [1]cf/gorouterRecommendedExperimental
cloudfoundry.system.instance.idstringA guid describing the concrete instance of the event source. [2]218fc5a9-a5f1-4b54-aa05-46717d0ab26dRecommendedExperimental

[1]: CloudFoundry defines the source_id in the Loggregator v2 envelope. It is used for logs and metrics emitted by CloudFoundry. It is supposed to contain the component name, e.g. “gorouter”, for CloudFoundry components.

When system components are instrumented, values from the Bosh spec should be used. The system.id should be set to spec.deployment/spec.name.

[2]: CloudFoundry defines the instance_id in the Loggregator v2 envelope. It is used for logs and metrics emitted by CloudFoundry. It is supposed to contain the vm id for CloudFoundry components.

When system components are instrumented, values from the Bosh spec should be used. The system.instance.id should be set to spec.id.