diff --git a/docs/reference/agent-api.md b/docs/reference/agent-api.md index 992f7e7523..83bdcc39b8 100644 --- a/docs/reference/agent-api.md +++ b/docs/reference/agent-api.md @@ -85,7 +85,7 @@ Each filter function will be called just before data is being sent to the APM Se Each filter function will be called in the order they were added, and will receive a `payload` object as the only argument, containing the data about to be sent to the APM Server. -The format of the payload depends on the event type being sent. For details about the different formats, see the [events intake API docs](docs-content://solutions/observability/apps/elastic-apm-events-intake-api.md). +The format of the payload depends on the event type being sent. For details about the different formats, see the [events intake API docs](docs-content://solutions/observability/apm/elastic-apm-events-intake-api.md). The filter function is synchronous and should return the manipulated payload object. If a filter function doesn’t return any value or returns a falsy value, the remaining filter functions will not be called and the payload **will not** be sent to the APM Server. @@ -134,7 +134,7 @@ Similar to [`apm.addFilter()`](#apm-add-filter), but the `fn` will only be calle Added in: v3.14.0 -Use `addMetadataFilter(fn)` to supply a filter function for the [metadata object](docs-content://solutions/observability/apps/elastic-apm-events-intake-api.md#apm-api-events-schema-definition) sent to the APM Server. This will allow you to manipulate the data being sent, for instance to remove possibly sensitive information. +Use `addMetadataFilter(fn)` to supply a filter function for the [metadata object](docs-content://solutions/observability/apm/elastic-apm-events-intake-api.md#apm-api-events-schema-definition) sent to the APM Server. This will allow you to manipulate the data being sent, for instance to remove possibly sensitive information. Each filter function will be called in the order they were added, and will receive a `metadata` object as the only argument. The filter function is synchronous and must return the manipulated object. Example usage: @@ -147,7 +147,7 @@ apm.addMetadataFilter(function dropArgv(metadata) { }) ``` -Warning: It is the responsibility of the author to ensure the returned object conforms to the [metadata schema](docs-content://solutions/observability/apps/elastic-apm-events-intake-api.md#apm-api-events-schema-definition) otherwise all APM data injest will fail. A metadata filter that breaks the metadata will result in error logging from the agent, something like: +Warning: It is the responsibility of the author to ensure the returned object conforms to the [metadata schema](docs-content://solutions/observability/apm/elastic-apm-events-intake-api.md#apm-api-events-schema-definition) otherwise all APM data injest will fail. A metadata filter that breaks the metadata will result in error logging from the agent, something like: ```text ERROR (elastic-apm-node): APM Server transport error (400): Unexpected APM Server response @@ -196,7 +196,7 @@ It’s possible to call this function multiple times within the scope of the sam If an error is captured, the context from the active transaction is used as context for the captured error, and any custom context given as the 2nd argument to [`apm.captureError`](#apm-capture-error) takes precedence and is shallow merged on top. ::::{tip} -Before using custom context, ensure you understand the different types of [metadata](docs-content://solutions/observability/apps/metadata.md) that are available. +Before using custom context, ensure you understand the different types of [metadata](docs-content://solutions/observability/apm/metadata.md) that are available. :::: @@ -216,7 +216,7 @@ apm.setLabel('productId', 42, false); Set a label on the current transaction. You can set multiple labels on the same transaction. If an error happens during the current transaction, it will also get tagged with the same label. ::::{tip} -Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apps/metadata.md) that are available. +Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apm/metadata.md) that are available. :::: @@ -244,7 +244,7 @@ apm.addLabels({productId: 42, productName: 'butter'}, false); Add several labels on the current transaction. You can add labels multiple times. If an error happens during the current transaction, it will also get tagged with the same labels. ::::{tip} -Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apps/metadata.md) that are available. +Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apm/metadata.md) that are available. :::: @@ -264,7 +264,7 @@ Added in: v3.47.0 Extends the [`globalLabels`](/reference/configuration.md#global-labels) configuration. It allows setting labels that are applied to all transactions. A potential use case is to specify a label with the state of your application: `'initializing' | 'available' | 'unhealthy'`. ::::{tip} -Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apps/metadata.md) that are available. +Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apm/metadata.md) that are available. :::: @@ -328,7 +328,7 @@ This makes it possible to better group error messages that contain variable data ### Metadata [metadata] -To ease debugging it’s possible to send some extra data with each error you send to the APM Server. The APM Server intake API supports a lot of different metadata fields, most of which are automatically managed by the Elastic APM Node.js Agent. But if you wish you can supply some extra details using `user` or `custom`. For more details on the properties accepted by the events intake API see the [events intake API docs](docs-content://solutions/observability/apps/elastic-apm-events-intake-api.md). +To ease debugging it’s possible to send some extra data with each error you send to the APM Server. The APM Server intake API supports a lot of different metadata fields, most of which are automatically managed by the Elastic APM Node.js Agent. But if you wish you can supply some extra details using `user` or `custom`. For more details on the properties accepted by the events intake API see the [events intake API docs](docs-content://solutions/observability/apm/elastic-apm-events-intake-api.md). To supply any of these extra fields, use the optional options argument when calling `apm.captureError()`. @@ -514,7 +514,7 @@ Added in: v1.1.0 * `options` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) The following options are supported: * `startTime` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) The time when the span started. Must be a Unix Time Stamp representing the number of milliseconds since January 1, 1970, 00:00:00 UTC. Sub-millisecond precision can be achieved using decimals. If not provided, the current time will be used - * `exitSpan` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) Make an "exit span". Exit spans represent outgoing communication. They are used to create a node in the [Service Map](docs-content://solutions/observability/apps/service-map.md) and a downstream service in the [Dependencies Table](docs-content://solutions/observability/apps/dependencies.md). The provided subtype will be used as the downstream service name. + * `exitSpan` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) Make an "exit span". Exit spans represent outgoing communication. They are used to create a node in the [Service Map](docs-content://solutions/observability/apm/service-map.md) and a downstream service in the [Dependencies Table](docs-content://solutions/observability/apm/dependencies.md). The provided subtype will be used as the downstream service name. * `links` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Span links. A span can refer to zero or more other transactions or spans (separate from its parent). Span links will be shown in the Kibana APM app trace view. The `links` argument is an array of objects with a single "context" field that is a `Transaction`, `Span`, or W3C trace-context *traceparent* string. For example: `apm.startSpan('aName', { links: [{ context: anotherSpan }] })`. diff --git a/docs/reference/azure-functions.md b/docs/reference/azure-functions.md index 5195222466..07832720c7 100644 --- a/docs/reference/azure-functions.md +++ b/docs/reference/azure-functions.md @@ -10,7 +10,7 @@ The Node.js APM Agent can trace function invocations in an [Azure Functions](htt ## Prerequisites [azure-functions-prerequisites] -You need an APM Server to send APM data to. Follow the [APM Quick start](docs-content://solutions/observability/apps/get-started-with-apm.md) if you have not set one up yet. You will need your **APM server URL** and an APM server **secret token** (or **API key**) for configuring the APM agent below. +You need an APM Server to send APM data to. Follow the [APM Quick start](docs-content://solutions/observability/apm/get-started.md) if you have not set one up yet. You will need your **APM server URL** and an APM server **secret token** (or **API key**) for configuring the APM agent below. You will also need an Azure Function app to monitor. If you do not have an existing one, you can follow [this Azure guide](https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-node#create-supporting-azure-resources-for-your-function) to create one. diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index cffbe4e025..999b63c535 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -50,7 +50,7 @@ The secret token optionally expected by the APM Server. The API key optionally expected by the APM Server. This is an alternative to `secretToken`. -This base64-encoded string is used to ensure that only your agents can send data to your APM server. You must have created the API key using the APM server command line tool. Please see the [APM server documentation](docs-content://solutions/observability/apps/api-keys.md) for details on how to do that. +This base64-encoded string is used to ensure that only your agents can send data to your APM server. You must have created the API key using the APM server command line tool. Please see the [APM server documentation](docs-content://solutions/observability/apm/api-keys.md) for details on how to do that. ::::{note} This feature is fully supported in the APM Server versions >= 7.6. @@ -123,7 +123,7 @@ var options = { The environment name is automatically logged along with all errors and transactions. If you want to overwrite this, use this option. -Environments allow you to easily filter data on a global level in the APM app. It’s important to be consistent when naming environments across agents. See [environment selector](docs-content://solutions/observability/apps/filter-application-data.md#apm-filter-your-data-service-environment-filter) in the APM app for more information. +Environments allow you to easily filter data on a global level in the APM app. It’s important to be consistent when naming environments across agents. See [environment selector](docs-content://solutions/observability/apm/filter-data.md#apm-filter-your-data-service-environment-filter) in the APM app for more information. ::::{note} This feature is fully supported in the APM app in Kibana versions >= 7.2. You must use the query bar to filter for a specific environment in versions prior to 7.2. @@ -182,7 +182,7 @@ To configure if outgoing http requests should be instrumented, see [`disableInst Activate APM Agent Configuration via Kibana. If set to `true`, the client will poll the APM Server regularly for new agent configuration. ::::{note} -This feature requires APM Server v7.3 or later. More information is available in [APM Agent configuration](docs-content://solutions/observability/apps/apm-agent-central-configuration.md). +This feature requires APM Server v7.3 or later. More information is available in [APM Agent configuration](docs-content://solutions/observability/apm/apm-agent-central-configuration.md). :::: @@ -629,7 +629,7 @@ The following transaction, span, and error fields will be truncated at this numb * `span.context.db.statement` * `error.exception.message`, `error.log.message` - If [`errorMessageMaxLength`](#error-message-max-length) is specified, then that value takes precedence for these error message fields. -Note that tracing data is limited at the upstream APM server to [`max_event_size`](docs-content://solutions/observability/apps/general-configuration-options.md#apm-max_event_size), which defaults to 300kB. If you configure `longFieldMaxLength` too large, it could result in transactions, spans, or errors that are rejected by APM server. +Note that tracing data is limited at the upstream APM server to [`max_event_size`](docs-content://solutions/observability/apm/general-configuration-options.md#apm-max_event_size), which defaults to 300kB. If you configure `longFieldMaxLength` too large, it could result in transactions, spans, or errors that are rejected by APM server. ## `stackTraceLimit` [stack-trace-limit] @@ -888,7 +888,7 @@ module.exports = { Set `breakdownMetrics: false` to disable reporting of breakdown metrics. Note that if `metricsInterval: 0`, then breakdown metrics will not be reported. -Breakdown metrics ([`span.self_time.*`](/reference/metrics.md#metrics-span.self_time.sum)) record the self-time spent in each unique type of span. This data drives the [Time spent by span type](docs-content://solutions/observability/apps/service-overview.md#service-span-duration) chart in the APM app. +Breakdown metrics ([`span.self_time.*`](/reference/metrics.md#metrics-span.self_time.sum)) record the self-time spent in each unique type of span. This data drives the [Time spent by span type](docs-content://solutions/observability/apm/service-overview.md#service-span-duration) chart in the APM app. ## `disableMetrics` [disable-metrics] @@ -1025,7 +1025,7 @@ Starting with Elastic Observability 8.2, span links will be visible in trace vie * **Default:** `true` * **Env:** `ELASTIC_APM_SPAN_COMPRESSION_ENABLED` -Setting this option to false will disable the [Span compression](docs-content://solutions/observability/apps/spans.md) feature. Span compression reduces the collection, processing, and storage overhead, and removes clutter from the UI. The tradeoff is that some information, such as DB statements of all the compressed spans, will not be collected. +Setting this option to false will disable the [Span compression](docs-content://solutions/observability/apm/spans.md) feature. Span compression reduces the collection, processing, and storage overhead, and removes clutter from the UI. The tradeoff is that some information, such as DB statements of all the compressed spans, will not be collected. Example usage: @@ -1132,6 +1132,6 @@ Change default in v4.0.0, in v3.x the default was `true` * **Default:** `false` * **Env:** `ELASTIC_APM_USE_ELASTIC_TRACEPARENT_HEADER` -To enable [distributed tracing](docs-content://solutions/observability/apps/traces.md), the agent adds trace context headers to outgoing requests (like HTTP requests, etc.). These headers (`traceparent` and `tracestate`) are defined in the [W3C Trace Context](https://www.w3.org/TR/trace-context-1/) specification. +To enable [distributed tracing](docs-content://solutions/observability/apm/traces.md), the agent adds trace context headers to outgoing requests (like HTTP requests, etc.). These headers (`traceparent` and `tracestate`) are defined in the [W3C Trace Context](https://www.w3.org/TR/trace-context-1/) specification. When this setting is `true`, the agent will also add the header `elastic-apm-traceparent` for backwards compatibility with older versions of Elastic APM agents. (In the next major version of this APM agent, this setting will default to false.) diff --git a/docs/reference/configuring-agent.md b/docs/reference/configuring-agent.md index 7f455df592..0dd7494f76 100644 --- a/docs/reference/configuring-agent.md +++ b/docs/reference/configuring-agent.md @@ -19,7 +19,7 @@ For information on the available configuration properties and the expected names Configuration options marked with the ![dynamic config](images/dynamic-config.svg "") badge can be changed at runtime when set from a supported source. -The Node.js Agent supports [Central configuration](docs-content://solutions/observability/apps/apm-agent-central-configuration.md), which allows you to fine-tune certain configurations via the APM app in Kibana. This feature is enabled in the Agent by default, with [`centralConfig`](/reference/configuration.md#central-config). +The Node.js Agent supports [Central configuration](docs-content://solutions/observability/apm/apm-agent-central-configuration.md), which allows you to fine-tune certain configurations via the APM app in Kibana. This feature is enabled in the Agent by default, with [`centralConfig`](/reference/configuration.md#central-config). ## Agent configuration object [agent-configuration-object] diff --git a/docs/reference/index.md b/docs/reference/index.md index 8ffffbf438..fa78d0bb06 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -20,5 +20,5 @@ These events, called Transactions and Spans, are sent to the APM Server. The APM ## Additional Components [additional-components] -APM Agents work in conjunction with the [APM Server](docs-content://solutions/observability/apps/application-performance-monitoring-apm.md), [Elasticsearch](docs-content://get-started/index.md), and [Kibana](docs-content://get-started/the-stack.md). The [APM Guide](docs-content://solutions/observability/apps/application-performance-monitoring-apm.md) provides details on how these components work together, and provides a matrix outlining [Agent and Server compatibility](docs-content://solutions/observability/apps/apm-agent-compatibility.md). +APM Agents work in conjunction with the [APM Server](docs-content://solutions/observability/apm/index.md), [Elasticsearch](docs-content://get-started/index.md), and [Kibana](docs-content://get-started/the-stack.md). The [APM Guide](docs-content://solutions/observability/apm/index.md) provides details on how these components work together, and provides a matrix outlining [Agent and Server compatibility](docs-content://solutions/observability/apm/apm-agent-compatibility.md). diff --git a/docs/reference/lambda.md b/docs/reference/lambda.md index 9d3973efa3..e0a2ecc31a 100644 --- a/docs/reference/lambda.md +++ b/docs/reference/lambda.md @@ -18,7 +18,7 @@ To get started with APM for your Node.js AWS Lambda functions follow the steps b ### Prerequisites [aws-lambda-nodejs-prerequisites] -You need an APM Server to send APM data to. Follow the [APM Quick start](docs-content://solutions/observability/apps/get-started-with-apm.md) if you have not set one up yet. For the best-possible performance, we recommend setting up APM on {{ecloud}} in the same AWS region as your AWS Lambda functions. +You need an APM Server to send APM data to. Follow the [APM Quick start](docs-content://solutions/observability/apm/get-started.md) if you have not set one up yet. For the best-possible performance, we recommend setting up APM on {{ecloud}} in the same AWS region as your AWS Lambda functions. ### Step 1: Add the APM Layers to your Lambda function [add_the_apm_layers_to_your_lambda_function] @@ -134,7 +134,7 @@ COPY --from=nodejs-agent /opt/nodejs/ /opt/nodejs/ The {{apm-lambda-ext}} and the APM Node.js agent are configured through environment variables on the AWS Lambda function. -For the minimal configuration, you will need the *APM Server URL* to set the destination for APM data and an [APM Secret Token](docs-content://solutions/observability/apps/secret-token.md). If you prefer to use an [APM API key](docs-content://solutions/observability/apps/api-keys.md) instead of the APM secret token, use the `ELASTIC_APM_API_KEY` environment variable instead of `ELASTIC_APM_SECRET_TOKEN` in the following configuration. +For the minimal configuration, you will need the *APM Server URL* to set the destination for APM data and an [APM Secret Token](docs-content://solutions/observability/apm/secret-token.md). If you prefer to use an [APM API key](docs-content://solutions/observability/apm/api-keys.md) instead of the APM secret token, use the `ELASTIC_APM_API_KEY` environment variable instead of `ELASTIC_APM_SECRET_TOKEN` in the following configuration. For production environments, we recommend [using the AWS Secrets Manager to store your APM authentication key](apm-aws-lambda://reference/aws-lambda-secrets-manager.md) instead of providing the secret value as plaintext in the environment variables. diff --git a/docs/reference/logs.md b/docs/reference/logs.md index 89c12187b5..32799ebd82 100644 --- a/docs/reference/logs.md +++ b/docs/reference/logs.md @@ -12,7 +12,7 @@ This feature is part of [Application log ingestion strategies](docs-content://so ## Log correlation [log-correlation-ids] -[Log correlation](docs-content://solutions/observability/apps/logs.md) allows you to navigate to all logs belonging to a particular trace and vice-versa: for a specific log, see in which context it has been logged and which parameters the user provided. +[Log correlation](docs-content://solutions/observability/apm/logs.md) allows you to navigate to all logs belonging to a particular trace and vice-versa: for a specific log, see in which context it has been logged and which parameters the user provided. In order to correlate logs from your application with traces captured by the Elastic APM Node.js Agent, your logs must contain the following identifiers: diff --git a/docs/reference/nextjs.md b/docs/reference/nextjs.md index 0a10474640..068a158070 100644 --- a/docs/reference/nextjs.md +++ b/docs/reference/nextjs.md @@ -17,7 +17,7 @@ This Next.js instrumentation is a *technical preview* while we solicit feedback ## Prerequisites [nextjs-prerequisites] -You need an APM Server to send APM data to. Follow the [APM Quick start](docs-content://solutions/observability/apps/get-started-with-apm.md) if you have not set one up yet. You will need your **APM server URL** and an APM server **secret token** (or **API key**) for configuring the APM agent below. +You need an APM Server to send APM data to. Follow the [APM Quick start](docs-content://solutions/observability/apm/get-started.md) if you have not set one up yet. You will need your **APM server URL** and an APM server **secret token** (or **API key**) for configuring the APM agent below. You will also need a Next.js application to monitor. If you do not have an existing one to use, you can use the following to create a starter app (see [Next.js Getting Started docs](https://nextjs.org/docs/getting-started) for more): diff --git a/docs/reference/opentelemetry-bridge.md b/docs/reference/opentelemetry-bridge.md index 9532e6d56d..68cc12e24d 100644 --- a/docs/reference/opentelemetry-bridge.md +++ b/docs/reference/opentelemetry-bridge.md @@ -155,7 +155,7 @@ A few configuration options can be used to control OpenTelemetry Metrics support The OpenTelemetry Tracing bridge works similarly to the [OpenTelemetry Node.js Trace SDK](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node/). It registers Tracer and ContextManager providers with the OpenTelemetry API. Subsequent `@opentelemetry/api` calls in user code will use those providers. The APM agent translates from OpenTelemetry to Elastic APM semantics and sends tracing data to your APM server for full support in [Elastic Observability’s APM app](https://www.elastic.co/apm). -Some examples of semantic translations: The first entry span of a service (e.g. an incoming HTTP request) will be converted to an [Elasic APM `Transaction`](docs-content://solutions/observability/apps/transactions.md), subsequent spans are mapped to [Elastic APM `Span`s](docs-content://solutions/observability/apps/spans.md). OpenTelemetry Span attributes are translated into the appropriate fields in Elastic APM’s data model. +Some examples of semantic translations: The first entry span of a service (e.g. an incoming HTTP request) will be converted to an [Elasic APM `Transaction`](docs-content://solutions/observability/apm/transactions.md), subsequent spans are mapped to [Elastic APM `Span`s](docs-content://solutions/observability/apm/spans.md). OpenTelemetry Span attributes are translated into the appropriate fields in Elastic APM’s data model. The only difference, from the user’s point of view, is in the setup of tracing. Instead of setting up the OpenTelemetry JS SDK, one sets up the APM agent as [described above](#otel-tracing-api). diff --git a/docs/reference/opentracing.md b/docs/reference/opentracing.md index 40a6bdddad..9de4791628 100644 --- a/docs/reference/opentracing.md +++ b/docs/reference/opentracing.md @@ -28,7 +28,7 @@ npm install elastic-apm-node elastic-apm-node-opentracing --save ## OpenTracing vs Elastic APM terminologies [ot-terminologies] -Elastic APM differentiates between [transactions](docs-content://solutions/observability/apps/transactions.md) and [spans](docs-content://solutions/observability/apps/spans.md). In the context of OpenTracing, a transaction can be thought of as a special kind of span. +Elastic APM differentiates between [transactions](docs-content://solutions/observability/apm/transactions.md) and [spans](docs-content://solutions/observability/apm/spans.md). In the context of OpenTracing, a transaction can be thought of as a special kind of span. Because OpenTracing natively only has the concept of spans, the Elastic APM OpenTracing bridge will automatically create either Elastic transactions or Elastic spans behind the scenes. There are a set of rules that determine which is created: @@ -126,7 +126,7 @@ The `span.setBaggageItem()` method is not supported. Baggage items are silently ### Logs [ot-logs] -Only error logging is supported. Logging an Error object on the OpenTracing span will create an Elastic APM [error](docs-content://solutions/observability/apps/errors.md). Example: +Only error logging is supported. Logging an Error object on the OpenTracing span will create an Elastic APM [error](docs-content://solutions/observability/apm/errors.md). Example: ```js const err = new Error('boom!') diff --git a/docs/reference/span-api.md b/docs/reference/span-api.md index 1e1448ac2c..a790c5c456 100644 --- a/docs/reference/span-api.md +++ b/docs/reference/span-api.md @@ -90,7 +90,7 @@ span.setLabel('productId', 42, false); Set a label on the span. You can set multiple labels on the same span. ::::{tip} -Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](/reference/agent-api.md#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apps/metadata.md) that are available. +Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](/reference/agent-api.md#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apm/metadata.md) that are available. :::: @@ -118,7 +118,7 @@ span.addLabels({productId: 42, productName: 'butter'}, false); Add several labels on the span. You can add labels multiple times. ::::{tip} -Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](/reference/agent-api.md#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apps/metadata.md) that are available. +Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](/reference/agent-api.md#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apm/metadata.md) that are available. :::: @@ -184,7 +184,7 @@ Added in: v3.39.0 * `type` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | null The target service type, usually the same value as `span.subtype`, e.g. "mysql". * `name` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | null The target service name, an optional scoping of the service. For databases it is typically the database name. -Manually set the `service.target.type` and `service.target.name` fields that identify a downstream service. They are used for [Service Maps](docs-content://solutions/observability/apps/service-map.md) and [Dependencies](docs-content://solutions/observability/apps/dependencies.md) in the Kibana APM app. The values are only used for "exit" spans — spans representing outgoing communication, marked with `exitSpan: true` at span creation. +Manually set the `service.target.type` and `service.target.name` fields that identify a downstream service. They are used for [Service Maps](docs-content://solutions/observability/apm/service-map.md) and [Dependencies](docs-content://solutions/observability/apm/dependencies.md) in the Kibana APM app. The values are only used for "exit" spans — spans representing outgoing communication, marked with `exitSpan: true` at span creation. If false-y values (e.g. `null`) are given for both `type` and `name`, then `service.target` will explicitly be excluded from this span. This may impact Service Maps and other Kibana APM app reporting for this service. diff --git a/docs/reference/supported-technologies.md b/docs/reference/supported-technologies.md index bf0cf1960c..7fa0d09ee5 100644 --- a/docs/reference/supported-technologies.md +++ b/docs/reference/supported-technologies.md @@ -33,7 +33,7 @@ Note: If you are using TypeScript or JavaScript that is *compiled/translated/tra ## Elastic Stack Compatibility [elastic-stack-compatibility] -This agent is compatible with [APM Server](docs-content://solutions/observability/apps/application-performance-monitoring-apm.md) v6.6 and above. +This agent is compatible with [APM Server](docs-content://solutions/observability/apm/index.md) v6.6 and above. ## Frameworks [compatibility-frameworks] diff --git a/docs/reference/transaction-api.md b/docs/reference/transaction-api.md index 1563d0086d..165c3f1531 100644 --- a/docs/reference/transaction-api.md +++ b/docs/reference/transaction-api.md @@ -84,7 +84,7 @@ Split `type` into `type`, `subtype` and `action` in: v3.0.0 * `options` - The following options are supported: * `startTime` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) The time when the span started. Must be a Unix Time Stamp representing the number of milliseconds since January 1, 1970, 00:00:00 UTC. Sub-millisecond precision can be achieved using decimals. If not provided, the current time will be used - * `exitSpan` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) Make an "exit span". Exit spans represent outgoing communication. They are used to create a node in the [Service Map](docs-content://solutions/observability/apps/service-map.md) and a downstream service in the [Dependencies Table](docs-content://solutions/observability/apps/dependencies.md). The provided subtype will be used as the downstream service name. + * `exitSpan` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) Make an "exit span". Exit spans represent outgoing communication. They are used to create a node in the [Service Map](docs-content://solutions/observability/apm/service-map.md) and a downstream service in the [Dependencies Table](docs-content://solutions/observability/apm/dependencies.md). The provided subtype will be used as the downstream service name. * `links` [``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Span links. A span can refer to zero or more other transactions or spans (separate from its parent). Span links will be shown in the Kibana APM app trace view. The `links` argument is an array of objects with a single "context" field that is a `Transaction`, `Span`, or W3C trace-context *traceparent* string. For example: `transaction.startSpan('aName', { links: [{ context: anotherSpan }] })`. @@ -108,7 +108,7 @@ transaction.setLabel('productId', 42, false); Set a label on the transaction. You can set multiple labels on the same transaction. If an error happens during the transaction, it will also get tagged with the same labels. ::::{tip} -Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](/reference/agent-api.md#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apps/metadata.md) that are available. +Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](/reference/agent-api.md#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apm/metadata.md) that are available. :::: @@ -136,7 +136,7 @@ transaction.addLabels({productId: 42, productName: 'butter'}, false); Add several labels on the transaction. You can add labels multiple times. If an error happens during the transaction, it will also get tagged with the same labels. ::::{tip} -Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](/reference/agent-api.md#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apps/metadata.md) that are available. +Labels are key/value pairs that are indexed by Elasticsearch and therefore searchable (as opposed to data set via [`apm.setCustomContext()`](/reference/agent-api.md#apm-set-custom-context)). Before using custom labels, ensure you understand the different types of [metadata](docs-content://solutions/observability/apm/metadata.md) that are available. :::: diff --git a/docs/reference/upgrading.md b/docs/reference/upgrading.md index c367d7c491..0843ff8178 100644 --- a/docs/reference/upgrading.md +++ b/docs/reference/upgrading.md @@ -10,7 +10,7 @@ The Elastic APM Node.js Agent uses [semantic versioning](https://semver.org/), a Before upgrading the agent, be sure to review the: * [Node.js APM Agent release notes](/release-notes/index.md) -* [APM Agent and Server compatibility chart](docs-content://solutions/observability/apps/apm-agent-compatibility.md) +* [APM Agent and Server compatibility chart](docs-content://solutions/observability/apm/apm-agent-compatibility.md) The following upgrade guides are available: