function transformResourceToAttributes()

in packages/opentelemetry-cloud-trace-exporter/src/transform.ts [202:227]


function transformResourceToAttributes(
  resource: IResource,
  projectId: string,
  resourceFilter?: RegExp,
  stringifyArrayAttributes?: boolean
): Attributes {
  const monitoredResource = mapOtelResourceToMonitoredResource(resource);
  const attributes: ot.SpanAttributes = {};

  if (resourceFilter) {
    Object.keys(resource.attributes)
      .filter(key => resourceFilter.test(key))
      .forEach(key => {
        attributes[key] = resource.attributes[key];
      });
  }

  // global is the "default" so just skip
  if (monitoredResource.type !== 'global') {
    Object.keys(monitoredResource.labels).forEach(labelKey => {
      const key = `g.co/r/${monitoredResource.type}/${labelKey}`;
      attributes[key] = monitoredResource.labels[labelKey];
    });
  }
  return spanAttributesToGCTAttributes(attributes, stringifyArrayAttributes);
}