diff --git a/docs/en/observability/landing-page/page.asciidoc b/docs/en/observability/landing-page/page.asciidoc index 6b92ef6b0d..65da406a01 100644 --- a/docs/en/observability/landing-page/page.asciidoc +++ b/docs/en/observability/landing-page/page.asciidoc @@ -2,7 +2,7 @@ include::temp/style.asciidoc[] [subs=attributes+] ++++ -

Rely on the most widely deployed observability solution, powered by machine learning and analytics, to converge metrics, logs, and traces that deliver unified visibility and actionable insights.

  • Eliminate tool silos and efficiently store data
  • Get visibility across hybrid and multi-cloud environments
  • Monitor your digital experience — 24/7

Using serverless? Go to the Elastic Observability serverless docs.

What do you want to observe?

Use cases

Cloud monitoring

Cross-platform and multi-cloud visibility and analytics.

DevOps

Observe your entire software lifecycle — from development to production.

  • CI/CD
    Get better visibility into your CI/CD pipelines.
  • ECS logging
    Leverage the Elastic Common Schema logging libraries to automatically link application traces to their corresponding logs.

AIOps

Automate anomaly detection and accelerate root cause analysis.

  • Root cause analysis with logs
    Learn about Elastic’s artificial intelligence for IT operations and machine learning capabilities for root cause analysis.
  • APM Correlations
    Automatically identify the probable causes of slow or failed transactions.

User experience

Measure, gauge, and improve your end users’ experience.

  • Scripting browser monitors
    Simulate critical user workflows on a regular interval to catch bugs before your users report them.
  • User experience
    Learn how to track Core Web Vitals and how to use them to quantify the real-world user experience.
+

Rely on the most widely deployed observability solution, powered by machine learning and analytics, to converge metrics, logs, and traces that deliver unified visibility and actionable insights.

  • Eliminate tool silos and efficiently store data
  • Get visibility across hybrid and multi-cloud environments
  • Monitor your digital experience — 24/7

Using serverless? Go to the {obs-serverless} docs.

What do you want to observe?

Use cases

Cloud monitoring

Cross-platform and multi-cloud visibility and analytics.

DevOps

Observe your entire software lifecycle — from development to production.

  • CI/CD
    Get better visibility into your CI/CD pipelines.
  • ECS logging
    Leverage the Elastic Common Schema logging libraries to automatically link application traces to their corresponding logs.

AIOps

Automate anomaly detection and accelerate root cause analysis.

  • Root cause analysis with logs
    Learn about Elastic’s artificial intelligence for IT operations and machine learning capabilities for root cause analysis.
  • APM Correlations
    Automatically identify the probable causes of slow or failed transactions.

User experience

Measure, gauge, and improve your end users’ experience.

  • Scripting browser monitors
    Simulate critical user workflows on a regular interval to catch bugs before your users report them.
  • User experience
    Learn how to track Core Web Vitals and how to use them to quantify the real-world user experience.
++++ ++++ diff --git a/docs/en/serverless/apm-agents/apm-agents-opentelemetry-limitations.asciidoc b/docs/en/serverless/apm-agents/apm-agents-opentelemetry-limitations.asciidoc new file mode 100644 index 0000000000..87009e9157 --- /dev/null +++ b/docs/en/serverless/apm-agents/apm-agents-opentelemetry-limitations.asciidoc @@ -0,0 +1,38 @@ +[[observability-apm-agents-opentelemetry-limitations]] += Limitations + +// :keywords: serverless, observability, overview + +[discrete] +[[observability-apm-agents-opentelemetry-limitations-opentelemetry-traces]] +== OpenTelemetry traces + +* Traces of applications using `messaging` semantics might be wrongly displayed as `transactions` in the Applications UI, while they should be considered `spans` (see issue https://github.com/elastic/apm-server/issues/7001[#7001]). +* Inability to see Stack traces in spans. +* Inability in APM views to view the "Time Spent by Span Type" (see issue https://github.com/elastic/apm-server/issues/5747[#5747]). + +[discrete] +[[open-telemetry-logs-intake]] +== OpenTelemetry logs + +* preview:[] The OpenTelemetry logs intake via Elastic is in technical preview. +* The application logs data stream (`app_logs`) has dynamic mapping disabled. This means the automatic detection and mapping of new fields is disabled (see issue https://github.com/elastic/apm-server/issues/9093[#9093]). + +[discrete] +[[open-telemetry-otlp-limitations]] +== OpenTelemetry Line Protocol (OTLP) + +Elastic supports both the +https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md#otlpgrpc[(OTLP/gRPC)] and +https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md#otlphttp[(OTLP/HTTP)] protocol +with ProtoBuf payload. Elastic does not yet support JSON Encoding for OTLP/HTTP. + +[discrete] +[[open-telemetry-collector-exporter]] +== OpenTelemetry Collector exporter for Elastic + +The https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticsearchexporter#legacy-opentelemetry-collector-exporter-for-elastic[OpenTelemetry Collector exporter for Elastic] +has been deprecated and replaced by the native support of the OpenTelemetry Line Protocol in Elastic Observability (OTLP). To learn more, see https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticsearchexporter#migration[migration]. + +The https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticsearchexporter[OpenTelemetry Collector exporter for Elastic] +(which is different from the legacy exporter mentioned above) is not intended to be used with Elastic APM and {obs-serverless}. Use <> instead. diff --git a/docs/en/serverless/apm-agents/apm-agents-opentelemetry.asciidoc b/docs/en/serverless/apm-agents/apm-agents-opentelemetry.asciidoc new file mode 100644 index 0000000000..2f6f544eb7 --- /dev/null +++ b/docs/en/serverless/apm-agents/apm-agents-opentelemetry.asciidoc @@ -0,0 +1,129 @@ +[[observability-apm-agents-opentelemetry]] += Use OpenTelemetry with APM + +// :keywords: serverless, observability, overview + +[NOTE] +==== +For a complete overview of using OpenTelemetry with Elastic, explore https://github.com/elastic/opentelemetry[Elastic Distributions of OpenTelemetry]. +==== + +https://opentelemetry.io/docs/concepts/what-is-opentelemetry/[OpenTelemetry] is a set of APIs, SDKs, tooling, and integrations that enable the capture and management of telemetry data from your services and applications. + +Elastic integrates with OpenTelemetry, allowing you to reuse your existing instrumentation to easily send observability data to the Elastic Stack. There are several ways to integrate OpenTelemetry with the Elastic Stack: + +* <> +* <> +* <> +* <> + +[discrete] +[[observability-apm-agents-opentelemetry-elastic-distributions-of-opentelemetry-language-sdks]] +== Elastic Distributions of OpenTelemetry language SDKs + +preview::[] + +Elastic offers several distributions of OpenTelemetry language SDKs. A _distribution_ is a customized version of an upstream OpenTelemetry repository. Each Elastic Distribution of OpenTelemetry is a customized version of an https://opentelemetry.io/docs/languages/[OpenTelemetry language SDK]. + +[role="screenshot"] +image::images/apm-otel-distro.png[] + +With an Elastic Distribution of OpenTelemetry language SDK you have access to all the features of the OpenTelemetry SDK that it customizes, plus: + +* You may get access to SDK improvements and bug fixes contributed by the Elastic team _before_ the changes are available upstream in the OpenTelemetry repositories. +* The distribution preconfigures the collection of tracing and metrics signals, applying some opinionated defaults, such as which sources are collected by default. + +// Why you wouldn't choose this method + +// Just that it's still in tech preview? + +// Where to go next + +Get started with an Elastic Distribution of OpenTelemetry language SDK: + +* https://github.com/elastic/elastic-otel-java[**Elastic Distribution of OpenTelemetry Java →**] +* preview:[] https://github.com/elastic/elastic-otel-dotnet[**Elastic Distribution of OpenTelemetry .NET →**] +* preview:[] https://github.com/elastic/elastic-otel-node[**Elastic Distribution of OpenTelemetry Node.js →**] +* preview:[] https://github.com/elastic/elastic-otel-python[**Elastic Distribution of OpenTelemetry Python →**] +* preview:[] https://github.com/elastic/elastic-otel-php[**Elastic Distribution of OpenTelemetry PHP →**] + +[NOTE] +==== +For more details about OpenTelemetry distributions in general, visit the https://opentelemetry.io/docs/concepts/distributions[OpenTelemetry documentation]. +==== + +[discrete] +[[observability-apm-agents-opentelemetry-upstream-opentelemetry-apisdk-elastic-apm-agent]] +== Upstream OpenTelemetry API/SDK + Elastic APM agent + +Use the OpenTelemetry API/SDKs with <> to translate OpenTelemetry API calls to Elastic APM API calls. + +[role="screenshot"] +image::images/apm-otel-api-sdk-elastic-agent.png[] + +// Why you _would_ choose this method + +This allows you to reuse your existing OpenTelemetry instrumentation to create Elastic APM transactions and spans — avoiding vendor lock-in and having to redo manual instrumentation. + +// Why you would _not_ choose this method + +However, not all features of the OpenTelemetry API are supported when using this approach, and not all Elastic APM agents support this approach. + +// Where to go next + +Find more details about how to use an OpenTelemetry API or SDK with an Elastic APM agent and which OpenTelemetry API features are supported in the APM agent documentation: + +* https://www.elastic.co/guide/en/apm/agent/java/current/opentelemetry-bridge.html[**APM Java agent →**] +* https://www.elastic.co/guide/en/apm/agent/dotnet/current/opentelemetry-bridge.html[**APM .NET agent →**] +* https://www.elastic.co/guide/en/apm/agent/nodejs/current/opentelemetry-bridge.html[**APM Node.js agent →**] +* https://www.elastic.co/guide/en/apm/agent/python/current/opentelemetry-bridge.html[**APM Python agent →**] + +[discrete] +[[observability-apm-agents-opentelemetry-upstream-opentelemetry-collector-and-language-sdks]] +== Upstream OpenTelemetry Collector and language SDKs + +The Elastic Stack natively supports the OpenTelemetry protocol (OTLP). This means trace data and metrics collected from your applications and infrastructure by an OpenTelemetry Collector or OpenTelemetry language SDK can be sent to the Elastic Stack. + +You can set up an https://opentelemetry.io/docs/collector/[OpenTelemetry Collector], instrument your application with an https://opentelemetry.io/docs/languages/[OpenTelemetry language SDK] that sends data to the collector, and use the collector to process and export the data to APM Server. + +[role="screenshot"] +image::images/apm-otel-api-sdk-collector.png[] + +[NOTE] +==== +It's also possible to send data directly to APM Server from an upstream OpenTelemetry SDK. You might do this during development or if you're monitoring a small-scale application. Read more about when to use a collector in the https://opentelemetry.io/docs/collector/#when-to-use-a-collector[OpenTelemetry documentation]. +==== + +// Why you _would_ choose this approach + +This approach works well when you need to instrument a technology that Elastic doesn't provide a solution for. For example, if you want to instrument C or C{plus}{plus} you could use the https://github.com/open-telemetry/opentelemetry-cpp[OpenTelemetry C{plus}{plus} client]. + +// Other languages include erlang, lua, perl. + +// Why you would _not_ choose this approach + +However, there are some limitations when using collectors and language SDKs built and maintained by OpenTelemetry, including: + +* Elastic can't provide implementation support on how to use upstream OpenTelemetry tools. +* You won't have access to Elastic enterprise APM features. +* You may experience problems with performance efficiency. + +For more on the limitations associated with using upstream OpenTelemetry tools, refer to <>. + +// Where to go next + +<> + +[discrete] +[[observability-apm-agents-opentelemetry-aws-lambda-collector-exporter]] +== AWS Lambda collector exporter + +AWS Lambda functions can be instrumented with OpenTelemetry and monitored with {obs-serverless}. + +// Do we want to say anything about why you would/wouldn't choose this method to send data to Elastic? + +// Where to go next + +To get started, follow the official AWS Distro for OpenTelemetry Lambda documentation, and configure the OpenTelemetry Collector to output traces and metrics to your Elastic cluster: + +https://aws-otel.github.io/docs/getting-started/lambda[**Get started with the AWS Distro for OpenTelemetry Lambda**^] diff --git a/docs/en/serverless/apm/apm-ui-trace-sample-timeline.asciidoc b/docs/en/serverless/apm/apm-ui-trace-sample-timeline.asciidoc new file mode 100644 index 0000000000..c09c5dac59 --- /dev/null +++ b/docs/en/serverless/apm/apm-ui-trace-sample-timeline.asciidoc @@ -0,0 +1,80 @@ +[[observability-apm-trace-sample-timeline]] += Trace sample timeline + +// :keywords: serverless, observability, reference + +The trace sample timeline visualization is a high-level view of what your application was doing while it was trying to respond to a request. +This makes it useful for visualizing where a selected transaction spent most of its time. + +[role="screenshot"] +image::images/transactions/apm-transaction-sample.png[Example view of transactions sample] + +View a span in detail by clicking on it in the timeline waterfall. +For example, when you click on an SQL Select database query, +the information displayed includes the actual SQL that was executed, how long it took, +and the percentage of the trace's total time. +You also get a stack trace, which shows the SQL query in your code. +Finally, APM knows which files are your code and which are just modules or libraries that you've installed. +These library frames will be minimized by default in order to show you the most relevant stack trace. + +[TIP] +==== +A {apm-guide-ref}/data-model-spans.html[span] is the duration of a single event. +Spans are automatically captured by APM agents, and you can also define custom spans. +Each span has a type and is defined by a different color in the timeline/waterfall visualization. +==== + +[role="screenshot"] +image::images/spans/apm-span-detail.png[Example view of a span detail in the Applications UI] + +[discrete] +[[observability-apm-trace-sample-timeline-investigate]] +== Investigate + +The trace sample timeline features an **Investigate** button which provides a quick way to jump +to other areas of the {obs-serverless} UI while maintaining the context of the currently selected trace sample. +For example, quickly view: + +* logs and metrics for the selected pod +* logs and metrics for the selected host +* trace logs for the selected `trace.id` +* uptime status of the selected domain +* the <> filtered by the selected trace +* the selected transaction in **Discover** +* your <> + +[discrete] +[[observability-apm-trace-sample-timeline-distributed-tracing]] +== Distributed tracing + +When a trace travels through multiple services it is known as a _distributed trace_. +In the Applications UI, the colors in a distributed trace represent different services and +are listed in the order they occur. + +[role="screenshot"] +image::images/spans/apm-services-trace.png[Example of distributed trace colors in the Applications UI] + +As application architectures are shifting from monolithic to more distributed, service-based architectures, +distributed tracing has become a crucial feature of modern application performance monitoring. +It allows you to trace requests through your service architecture automatically, and visualize those traces in one single view in the Applications UI. +From initial web requests to your front-end service, to queries made to your back-end services, +this makes finding possible bottlenecks throughout your application much easier and faster. + +[role="screenshot"] +image::images/spans/apm-distributed-tracing.png[Example view of the distributed tracing in the Applications UI] + +Don't forget; by definition, a distributed trace includes more than one transaction. +When viewing distributed traces in the timeline waterfall, +you'll see this icon: image:images/icons/merge.svg[Merge], +which indicates the next transaction in the trace. +For easier problem isolation, transactions can be collapsed in the waterfall by clicking +the icon to the left of the transactions. +Transactions can also be expanded and viewed in detail by clicking on them. + +After exploring these traces, +you can return to the full trace by clicking **View full trace**. + +[TIP] +==== +Distributed tracing is supported by all APM agents, and there's no additional configuration needed. +==== diff --git a/docs/en/serverless/cases/cases.asciidoc b/docs/en/serverless/cases/cases.asciidoc new file mode 100644 index 0000000000..2b05f96079 --- /dev/null +++ b/docs/en/serverless/cases/cases.asciidoc @@ -0,0 +1,16 @@ +[[observability-cases]] += Cases + +// :description: Use cases to track progress toward solving problems detected in {obs-serverless}. +// :keywords: serverless, observability, overview + +Collect and share information about observability issues by creating a case. +Cases allow you to track key investigation details, +add assignees and tags to your cases, set their severity and status, and add alerts, +comments, and visualizations. You can also send cases to third-party systems by +<>. + +[role="screenshot"] +image::images/cases.png[Cases page] + +// NOTE: This is an autogenerated screenshot. Do not edit it directly. diff --git a/docs/en/serverless/cases/manage-cases-settings.asciidoc b/docs/en/serverless/cases/manage-cases-settings.asciidoc new file mode 100644 index 0000000000..82cb7026dd --- /dev/null +++ b/docs/en/serverless/cases/manage-cases-settings.asciidoc @@ -0,0 +1,149 @@ +[[observability-case-settings]] += Configure case settings + +// :description: Change the default behavior of {obs-serverless} cases by adding connectors, custom fields, templates, and closure options. +// :keywords: serverless, observability, how-to + +:role: Editor +:goal: create and edit connectors +include::../partials/roles.asciidoc[] +:role!: + +:goal!: + +To access case settings in an {obs-serverless} project, go to **Cases** → **Settings**. + +[role="screenshot"] +image::images/observability-cases-settings.png[View case settings] + +// NOTE: This is an autogenerated screenshot. Do not edit it directly. + +[discrete] +[[observability-case-settings-case-closures]] +== Case closures + +If you close cases in your external incident management system, the cases will remain open in {obs-serverless} until you close them manually (the information is only sent in one direction). + +To close cases when they are sent to an external system, select **Automatically close cases when pushing new incident to external system**. + +[discrete] +[[observability-case-settings-external-incident-management-systems]] +== External incident management systems + +If you are using an external incident management system, you can integrate {obs-serverless} +cases with this system using connectors. These third-party systems are supported: + +* {ibm-r} +* {jira} (including {jira} Service Desk) +* {sn-itsm} +* {sn-sir} +* {swimlane} +* TheHive +* {webhook-cm} + +You need to create a connector to send cases, which stores the information required to interact +with an external system. For each case, you can send the title, description, and comment when +you choose to push the case — for the **Webhook - Case Management** connector, you can also +send the status and severity fields. + +[IMPORTANT] +==== +// TODO: Verify user roles needed to create connectors... + +To add, modify, or delete a connector, you must have the Admin user role for the project +(or a more permissive role). +==== + +After creating a connector, you can set your cases to +automatically close when they are sent to an external system. + +[discrete] +[[observability-case-settings-create-a-connector]] +=== Create a connector + +. From the **Incident management system** list, select **Add new connector**. +. Select the system to send cases to: **{sn}**, **{jira}**, **{ibm-r}**, +**{swimlane}**, **TheHive**, or **{webhook-cm}**. ++ +[role="screenshot"] +image::images/observability-cases-add-connector.png[Add a connector to send cases to an external source] ++ +// NOTE: This is an autogenerated screenshot. Do not edit it directly. +. Enter your required settings. For connector configuration details, refer to: ++ +** {kibana-ref}/resilient-action-type.html[{ibm-r} connector] +** {kibana-ref}/jira-action-type.html[{jira} connector] +** {kibana-ref}/servicenow-action-type.html[{sn-itsm} connector] +** {kibana-ref}/servicenow-sir-action-type.html[{sn-sir} connector] +** {kibana-ref}/swimlane-action-type.html[{swimlane} connector] +** https://www.elastic.co/guide/en/kibana/master/thehive-action-type.html[TheHive connector] +** {kibana-ref}/cases-webhook-action-type.html[{webhook-cm} connector] +. Click **Save**. + +[discrete] +[[observability-case-settings-edit-a-connector]] +=== Edit a connector + +You can create additional connectors, update existing connectors, and change the connector used to send cases to external systems. + +[TIP] +==== +You can also configure which connector is used for each case individually. Refer to <>. +==== + +To change the default connector used to send cases to external systems: + +. Select the required connector from the **Incident management system** list. + +To update an existing connector: + +. Click **Update **. +. Update the connector fields as required. + +[discrete] +[[observability-case-settings-custom-fields]] +== Custom fields + +You can add optional and required fields for customized case collaboration. + +To create a custom field: + +. In the **Custom fields** section, click **Add field**. ++ +[role="screenshot"] +image::images/observability-cases-custom-fields.png[Add a custom field] ++ +// NOTE: This is an autogenerated screenshot. Do not edit it directly. +. You must provide a field label and type (text or toggle). +You can optionally designate it as a required field and provide a default value. + +When you create a custom field, it's added to all new and existing cases. +In existing cases, new custom text fields initially have null values. + +You can subsequently remove or edit custom fields on the **Settings** page. + +[discrete] +[[observability-case-settings-templates]] +== Templates + +preview::[] + +You can make the case creation process faster and more consistent by adding templates. +A template defines values for one or all of the case fields (such as severity, tags, description, and title) as well as any custom fields. + +To create a template: + +. In the **Templates** section, click **Add template**. ++ +[role="screenshot"] +image::images/observability-cases-templates.png[Add a case template] ++ +// NOTE: This is an autogenerated screenshot. Do not edit it directly. +. You must provide a template name and case severity. You can optionally add template tags and a description, values for each case field, and a case connector. + +When users create cases, they can optionally select a template and use its field values or override them. + +[NOTE] +==== +If you update or delete templates, existing cases are unaffected. +==== diff --git a/docs/en/serverless/index.asciidoc b/docs/en/serverless/index.asciidoc new file mode 100644 index 0000000000..d0b4724ad6 --- /dev/null +++ b/docs/en/serverless/index.asciidoc @@ -0,0 +1,226 @@ +include::{asciidoc-dir}/../../shared/versions/stack/current.asciidoc[] +include::{asciidoc-dir}/../../shared/attributes.asciidoc[] + +[[what-is-observability-serverless]] +== {obs-serverless} + +++++ +Elastic Observability +++++ + +include::./what-is-observability-serverless.asciidoc[leveloffset=+2] + +// Group: Get started with Elastic Observability Serverless +include::observability-get-started.asciidoc[leveloffset=+2] + +// What is Observability? +include::./observability-overview.asciidoc[leveloffset=+3] + +// Observability billing dimensions +include::./projects/billing.asciidoc[leveloffset=+3] + +// Create an Elastic Observability Serverless project +include::./projects/create-an-observability-project.asciidoc[leveloffset=+3] + +// Quickstarts +include::./quickstarts/monitor-hosts-with-elastic-agent.asciidoc[leveloffset=+3] +include::./quickstarts/k8s-logs-metrics.asciidoc[leveloffset=+3] +include::./quickstarts/monitor-k8s-otel.asciidoc[leveloffset=+3] +include::./quickstarts/collect-data-with-aws-firehose.asciidoc[leveloffset=+3] + +// Dashboards +include::./dashboards/dashboards-and-visualizations.asciidoc[leveloffset=+3] + +// Group: Application and service monitoring +include::./application-and-service-monitoring.asciidoc[leveloffset=+2] + +// APM +include::./apm/apm.asciidoc[leveloffset=+3] +include::./apm/apm-get-started.asciidoc[leveloffset=+4] +include::./apm/apm-send-traces-to-elastic.asciidoc[leveloffset=+4] +include::./apm-agents/apm-agents-elastic-apm-agents.asciidoc[leveloffset=+5] +include::./apm-agents/apm-agents-opentelemetry.asciidoc[leveloffset=+5] +include::./apm-agents/apm-agents-opentelemetry-opentelemetry-native-support.asciidoc[leveloffset=+6] +include::./apm-agents/apm-agents-opentelemetry-collect-metrics.asciidoc[leveloffset=+6] +include::./apm-agents/apm-agents-opentelemetry-limitations.asciidoc[leveloffset=+6] +include::./apm-agents/apm-agents-opentelemetry-resource-attributes.asciidoc[leveloffset=+6] +include::./apm-agents/apm-agents-aws-lambda-functions.asciidoc[leveloffset=+5] +include::./apm/apm-view-and-analyze-traces.asciidoc[leveloffset=+4] +include::./apm/apm-find-transaction-latency-and-failure-correlations.asciidoc[leveloffset=+5] +include::./apm/apm-integrate-with-machine-learning.asciidoc[leveloffset=+5] +include::./apm/apm-create-custom-links.asciidoc[leveloffset=+5] +include::./apm/apm-track-deployments-with-annotations.asciidoc[leveloffset=+5] +include::./apm/apm-query-your-data.asciidoc[leveloffset=+5] +include::./apm/apm-filter-your-data.asciidoc[leveloffset=+5] +include::./apm/apm-observe-lambda-functions.asciidoc[leveloffset=+5] +include::./apm/apm-ui-overview.asciidoc[leveloffset=+5] +include::./apm/apm-ui-services.asciidoc[leveloffset=+6] +include::./apm/apm-ui-traces.asciidoc[leveloffset=+6] +include::./apm/apm-ui-dependencies.asciidoc[leveloffset=+6] +include::./apm/apm-ui-service-map.asciidoc[leveloffset=+6] +include::./apm/apm-ui-service-overview.asciidoc[leveloffset=+6] +include::./apm/apm-ui-transactions.asciidoc[leveloffset=+6] +include::./apm/apm-ui-trace-sample-timeline.asciidoc[leveloffset=+6] +include::./apm/apm-ui-errors.asciidoc[leveloffset=+6] +include::./apm/apm-ui-metrics.asciidoc[leveloffset=+6] +include::./apm/apm-ui-infrastructure.asciidoc[leveloffset=+6] +include::./apm/apm-ui-logs.asciidoc[leveloffset=+6] +include::./apm/apm-data-types.asciidoc[leveloffset=+4] +include::./apm/apm-distributed-tracing.asciidoc[leveloffset=+4] +include::./apm/apm-reduce-your-data-usage.asciidoc[leveloffset=+4] +include::./apm/apm-transaction-sampling.asciidoc[leveloffset=+5] +include::./apm/apm-compress-spans.asciidoc[leveloffset=+5] +include::./apm/apm-stacktrace-collection.asciidoc[leveloffset=+5] +include::./apm/apm-keep-data-secure.asciidoc[leveloffset=+4] +include::./apm/apm-troubleshooting.asciidoc[leveloffset=+4] +include::./apm/apm-reference.asciidoc[leveloffset=+4] +include::./apm/apm-kibana-settings.asciidoc[leveloffset=+5] +include::./apm/apm-server-api.asciidoc[leveloffset=+5] + +// Synthetics +include::./synthetics/synthetics-intro.asciidoc[leveloffset=+3] + +include::./synthetics/synthetics-get-started.asciidoc[leveloffset=+4] +include::./synthetics/synthetics-get-started-project.asciidoc[leveloffset=+5] +include::./synthetics/synthetics-get-started-ui.asciidoc[leveloffset=+5] + +include::./synthetics/synthetics-journeys.asciidoc[leveloffset=+4] +include::./synthetics/synthetics-create-test.asciidoc[leveloffset=+5] +include::./synthetics/synthetics-monitor-use.asciidoc[leveloffset=+5] +include::./synthetics/synthetics-recorder.asciidoc[leveloffset=+5] + +include::./synthetics/synthetics-lightweight.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-manage-monitors.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-params-secrets.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-analyze.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-private-location.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-command-reference.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-configuration.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-mfa.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-settings.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-feature-roles.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-manage-retention.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-scale-and-architect.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-security-encryption.asciidoc[leveloffset=+4] + +include::./synthetics/synthetics-troubleshooting.asciidoc[leveloffset=+4] + +// Group: Infrastructure and hosts +include::./infrastructure-and-host-monitoring-intro.asciidoc[leveloffset=+2] + +include::./infra-monitoring/infra-monitoring.asciidoc[leveloffset=+3] +include::./infra-monitoring/get-started-with-metrics.asciidoc[leveloffset=+4] +include::./infra-monitoring/view-infrastructure-metrics.asciidoc[leveloffset=4] +include::./infra-monitoring/analyze-hosts.asciidoc[leveloffset=+4] +include::./infra-monitoring/detect-metric-anomalies.asciidoc[leveloffset=+4] +include::./infra-monitoring/configure-infra-settings.asciidoc[leveloffset=+4] + +include::./infra-monitoring/troubleshooting-infra.asciidoc[leveloffset=+3] +include::./infra-monitoring/handle-no-results-found-message.asciidoc[leveloffset=+4] + +include::./infra-monitoring/metrics-reference.asciidoc[leveloffset=+3] +include::./infra-monitoring/host-metrics.asciidoc[leveloffset=+4] +include::./infra-monitoring/container-metrics.asciidoc[leveloffset=+4] +include::./infra-monitoring/kubernetes-pod-metrics.asciidoc[leveloffset=+4] +include::./infra-monitoring/aws-metrics.asciidoc[leveloffset=+4] + +// Group: Logs +// TODO: Check the diff to see which changes need to be applied to these files. Also ask Mike if it's expected for serverless and stateful to be out of sync. + +include::./logging/log-monitoring.asciidoc[leveloffset=+2] + +include::./logging/get-started-with-logs.asciidoc[leveloffset=+3] +include::./logging/stream-log-files.asciidoc[leveloffset=+3] +include::./logging/correlate-application-logs.asciidoc[leveloffset=+3] +include::./logging/plaintext-application-logs.asciidoc[leveloffset=+4] +include::./logging/ecs-application-logs.asciidoc[leveloffset=+4] +include::./logging/send-application-logs.asciidoc[leveloffset=+4] +include::./logging/parse-log-data.asciidoc[leveloffset=+3] +include::./logging/filter-and-aggregate-logs.asciidoc[leveloffset=+3] +include::./logging/view-and-monitor-logs.asciidoc[leveloffset=+3] +include::./logging/add-logs-service-name.asciidoc[leveloffset=+3] +include::./logging/run-log-pattern-analysis.asciidoc[leveloffset=+3] +include::./logging/troubleshoot-logs.asciidoc[leveloffset=+3] + +//TODO: Figure out where to put this. It's under "view and analyze data" in stateful, but that category doesn't exist in serverless yet. +include::./inventory.asciidoc[leveloffset=+2] + +// Group: Incident management +include::./incident-management.asciidoc[leveloffset=+2] + +// Alerting +include::./alerting/alerting.asciidoc[leveloffset=+3] +include::./alerting/create-manage-rules.asciidoc[leveloffset=+4] +include::./alerting/aiops-generate-anomaly-alerts.asciidoc[leveloffset=+5] +include::./alerting/create-anomaly-alert-rule.asciidoc[leveloffset=+5] +include::./alerting/create-custom-threshold-alert-rule.asciidoc[leveloffset=+5] +include::./alerting/create-elasticsearch-query-alert-rule.asciidoc[leveloffset=+5] +include::./alerting/create-error-count-threshold-alert-rule.asciidoc[leveloffset=+5] +include::./alerting/create-failed-transaction-rate-threshold-alert-rule.asciidoc[leveloffset=+5] +include::./alerting/create-inventory-threshold-alert-rule.asciidoc[leveloffset=+5] +include::./alerting/create-latency-threshold-alert-rule.asciidoc[leveloffset=+5] +include::./alerting/create-slo-burn-rate-alert-rule.asciidoc[leveloffset=+5] +include::./alerting/synthetic-monitor-status-alert.asciidoc[leveloffset=+5] +include::./alerting/aggregation-options.asciidoc[leveloffset=+4] +include::./alerting/rate-aggregation.asciidoc[leveloffset=+5] +include::./alerting/view-alerts.asciidoc[leveloffset=+4] +include::./alerting/triage-slo-burn-rate-breaches.asciidoc[leveloffset=+5] +include::./alerting/triage-threshold-breaches.asciidoc[leveloffset=+5] + +// Cases +include::./cases/cases.asciidoc[leveloffset=+3] + +include::./cases/create-manage-cases.asciidoc[leveloffset=+4] + +include::./cases/manage-cases-settings.asciidoc[leveloffset=+4] + +//SLOs +include::./slos/slos.asciidoc[leveloffset=+3] + +include::./slos/create-an-slo.asciidoc[leveloffset=+4] + +//Data Set Quality +include::./monitor-datasets.asciidoc[leveloffset=+2] + +//Observability AI Assistant +include::./ai-assistant/ai-assistant.asciidoc[leveloffset=+2] + +//Machine learning + +include::./machine-learning/machine-learning.asciidoc[leveloffset=+2] +include::./machine-learning/aiops-detect-anomalies.asciidoc[leveloffset=+3] +include::./machine-learning/aiops-tune-anomaly-detection-job.asciidoc[leveloffset=+4] +include::./machine-learning/aiops-forecast-anomaly.asciidoc[leveloffset=+4] +include::./machine-learning/aiops-analyze-spikes.asciidoc[leveloffset=+3] +include::./machine-learning/aiops-detect-change-points.asciidoc[leveloffset=+3] + +// Reference group + +include::./reference.asciidoc[leveloffset=+2] + +// Fields + +include::./reference/metrics-app-fields.asciidoc[leveloffset=+3] + +// Elastic Entity Model + +include::./reference/elastic-entity-model.asciidoc[leveloffset=+3] + +// Technical preview limitations + +include::./limitations.asciidoc[leveloffset=+2] + +// add redirects file +include::redirects.asciidoc[] \ No newline at end of file diff --git a/docs/en/serverless/logging/log-monitoring.asciidoc b/docs/en/serverless/logging/log-monitoring.asciidoc new file mode 100644 index 0000000000..122c3d8641 --- /dev/null +++ b/docs/en/serverless/logging/log-monitoring.asciidoc @@ -0,0 +1,120 @@ +[[observability-log-monitoring]] += Log monitoring + +++++ +Logs +++++ + +// :description: Use Elastic to deploy and manage logs at a petabyte scale, and get insights from your logs in minutes. +// :keywords: serverless, observability, overview + +{obs-serverless} allows you to deploy and manage logs at a petabyte scale, giving you insights into your logs in minutes. You can also search across your logs in one place, troubleshoot in real time, and detect patterns and outliers with categorization and anomaly detection. For more information, refer to the following links: + +* <>: Onboard system log data from a machine or server. +* <>: Send log files to your Observability project using a standalone {agent}. +* <>: Parse your log data and extract structured fields that you can use to analyze your data. +* <>: Filter and aggregate your log data to find specific information, gain insight, and monitor your systems more efficiently. +* <>: Find information on visualizing and analyzing logs. +* <>: Find patterns in unstructured log messages and make it easier to examine your data. +* <>: Find solutions for errors you might encounter while onboarding your logs. + +[discrete] +[[observability-log-monitoring-send-logs-data-to-your-project]] +== Send logs data to your project + +You can send logs data to your project in different ways depending on your needs: + +* {agent} +* {filebeat} + +When choosing between {agent} and {filebeat}, consider the different features and functionalities between the two options. +See {fleet-guide}/beats-agent-comparison.html[{beats} and {agent} capabilities] for more information on which option best fits your situation. + +[discrete] +[[observability-log-monitoring-agent]] +=== {agent} + +{agent} uses https://www.elastic.co/integrations/data-integrations[integrations] to ingest logs from Kubernetes, MySQL, and many more data sources. +You have the following options when installing and managing an {agent}: + +[discrete] +[[observability-log-monitoring-fleet-managed-agent]] +==== {fleet}-managed {agent} + +Install an {agent} and use {fleet} to define, configure, and manage your agents in a central location. + +See {fleet-guide}/install-fleet-managed-elastic-agent.html[install {fleet}-managed {agent}]. + +[discrete] +[[observability-log-monitoring-standalone-agent]] +==== Standalone {agent} + +Install an {agent} and manually configure it locally on the system where it’s installed. +You are responsible for managing and upgrading the agents. + +See {fleet-guide}/install-standalone-elastic-agent.html[install standalone {agent}]. + +[discrete] +[[observability-log-monitoring-agent-in-a-containerized-environment]] +==== {agent} in a containerized environment + +Run an {agent} inside of a container — either with {fleet-server} or standalone. + +See {fleet-guide}/install-elastic-agents-in-containers.html[install {agent} in containers]. + +[discrete] +[[observability-log-monitoring-filebeat]] +=== {filebeat} + +{filebeat} is a lightweight shipper for forwarding and centralizing log data. +Installed as a service on your servers, {filebeat} monitors the log files or locations that you specify, collects log events, and forwards them to your Observability project for indexing. + +* {filebeat-ref}/filebeat-overview.html[{filebeat} overview]: General information on {filebeat} and how it works. +* {filebeat-ref}/filebeat-installation-configuration.html[{filebeat} quick start]: Basic installation instructions to get you started. +* {filebeat-ref}/setting-up-and-running.html[Set up and run {filebeat}]: Information on how to install, set up, and run {filebeat}. + +[discrete] +[[observability-log-monitoring-configure-logs]] +== Configure logs + +The following resources provide information on configuring your logs: + +* {ref}/data-streams.html[Data streams]: Efficiently store append-only time series data in multiple backing indices partitioned by time and size. +* {kibana-ref}/data-views.html[Data views]: Query log entries from the data streams of specific datasets or namespaces. +* {ref}/example-using-index-lifecycle-policy.html[Index lifecycle management]: Configure the built-in logs policy based on your application's performance, resilience, and retention requirements. +* {ref}/ingest.html[Ingest pipeline]: Parse and transform log entries into a suitable format before indexing. +* {ref}/mapping.html[Mapping]: Define how data is stored and indexed. + +[discrete] +[[observability-log-monitoring-view-and-monitor-logs]] +== View and monitor logs + +Use **Logs Explorer** to search, filter, and tail all your logs ingested into your project in one place. + +The following resources provide information on viewing and monitoring your logs: + +* <>: Discover and explore all of the log events flowing in from your servers, virtual machines, and containers in a centralized view. +* <>: Use {ml} to detect log anomalies automatically. + +[discrete] +[[observability-log-monitoring-monitor-data-sets]] +== Monitor data sets + +The **Data Set Quality** page provides an overview of your data sets and their quality. +Use this information to get an idea of your overall data set quality, and find data sets that contain incorrectly parsed documents. + +<> + +[discrete] +[[observability-log-monitoring-application-logs]] +== Application logs + +Application logs provide valuable insight into events that have occurred within your services and applications. +See <>. + +//// +/* ## Create a logs threshold alert + +You can create a rule to send an alert when the log aggregation exceeds a threshold. +See Create a logs threshold rule. */ +//// diff --git a/docs/en/serverless/observability-get-started.asciidoc b/docs/en/serverless/observability-get-started.asciidoc new file mode 100644 index 0000000000..57d2c985a9 --- /dev/null +++ b/docs/en/serverless/observability-get-started.asciidoc @@ -0,0 +1,79 @@ +[[observability-get-started]] += Get started with {obs-serverless} + +++++ +Get started +++++ + +New to Elastic {observability}? Discover more about our observability features and how to get started. + +[discrete] +== Learn about Elastic {observability} + +Learn about key features available to help you get value from your observability data and what it will cost you: + +* <> +* <> + +[discrete] +[[get-started-with-use-case]] +== Get started with your use case + +Learn how to create an Observability project and use Elastic +Observability to gain deeper insight into the behavior of your applications and +systems. + +image::images/get-started.svg[] + +1. **Choose your source.** Elastic integrates with hundreds of data sources for +unified visibility across all your applications and systems. + +2. **Ingest your data.** Turn-key integrations provide a repeatable workflow to +ingest data from all your sources: you install an integration, configure it, and +deploy an agent to collect your data. + +3. **View your data.** Navigate seamlessly between Observabilty UIs and +dashboards to identify and resolve problems quickly. + +4. **Customize.** Expand your deployment and add features like alerting and anomaly +detection. + +To get started, <>, +then follow one of our <> to learn how to ingest and visualize your observability data. + +[discrete] +[[quickstarts-overview]] +=== Quickstarts + +Our quickstarts dramatically reduce your time-to-value by offering a fast path to ingest and visualize your Observability data. +Each quickstart provides: + +* A highly opinionated, fast path to data ingestion +* Sensible configuration defaults with minimal configuration required +* Auto-detection of logs and metrics for monitoring hosts +* Quick access to related dashboards and visualizations + +Follow the steps in these guides to get started quickly: + +* <> +* <> +* <> +* <> + +[discrete] +=== Get started with other features + +Want to use {fleet} or some other feature not covered in the quickstarts? +Follow the steps in these guides to get started: + +* <> +* <> +* <> + +[discrete] +== Additional guides + +Ready to dig into more features of {obs-serverless}? See these guides: + +* <> +* <> diff --git a/docs/en/serverless/projects/billing.asciidoc b/docs/en/serverless/projects/billing.asciidoc new file mode 100644 index 0000000000..f1e2c8ac63 --- /dev/null +++ b/docs/en/serverless/projects/billing.asciidoc @@ -0,0 +1,21 @@ +[[observability-billing]] += {obs-serverless} billing dimensions + +// :description: Learn about how Observability usage affects pricing. +// :keywords: serverless, observability, overview + +{obs-serverless} projects provide you with all the capabilities of Elastic Observability to monitor critical applications. +Projects are provided using a Software as a Service (SaaS) model, and pricing is entirely consumption-based. + +Your monthly bill is based on the capabilities you use. +When you use {obs-serverless}, your bill is calculated based on data volume, which has these components: + +* **Ingest** — Measured by the number of GB of log/event/info data that you send to your Observability project over the course of a month. +* **Storage/Retention** — This is known as Search AI Lake. +* In addition to the core ingest and retention dimensions, there is an optional charge to execute synthetic monitors on our testing infrastructure. +Browser (journey) based tests are charged on a per-test-run basis, +and Ping (lightweight) tests have an all-you-can-use model per location used. + +For more information, refer to <>. + +For detailed {obs-serverless} project rates, check the https://www.elastic.co/pricing/serverless-observability[{obs-serverless} pricing page]. diff --git a/docs/en/serverless/reference/elastic-entity-model.asciidoc b/docs/en/serverless/reference/elastic-entity-model.asciidoc new file mode 100644 index 0000000000..fdc54c861d --- /dev/null +++ b/docs/en/serverless/reference/elastic-entity-model.asciidoc @@ -0,0 +1,57 @@ +[[observability-elastic-entity-model]] += Elastic Entity Model + +// :description: Learn about the model that empowers entity-centric Elastic solution features and workflows. +// :keywords: serverless, observability, overview + +The Elastic Entity Model consists of: + +* a data model and related entity indices +* an Entity Discovery Framework, which consists of {ref}/transforms.html[transforms] and {ref}/ingest.html[Ingest pipelines] that read from signal indices and write data to entity indices +* a set of management APIs that empower entity-centric Elastic solution features and workflows + +In {obs-serverless}, +an _entity_ is an object of interest that can be associated with produced telemetry and identified as unique. +Note that this definition is intentionally closely aligned to the work of the https://github.com/open-telemetry/oteps/blob/main/text/entities/0256-entities-data-model.md#data-model[OpenTelemetry Entities SIG]. +Examples of entities include (but are not limited to) services, hosts, and containers. + +The concept of an entity is important as a means to unify observability signals based on the underlying entity that the signals describe. + +.Notes +[NOTE] +==== +The Elastic Entity Model currently supports the <> limited to service, host, and container entities. +==== + +[discrete] +[[observability-elastic-entity-model-enable-the-elastic-entity-model]] +== Enable the Elastic Entity Model + +:role: Admin +:goal: enable the Elastic Entity Model +include::../partials/roles.asciidoc[] +:role!: + +:goal!: + +You can enable the Elastic Entity Model from the new <>. If already enabled, you will not be prompted to enable the Elastic Entity Model. + +[discrete] +[[observability-elastic-entity-model-disable-the-elastic-entity-model]] +== Disable the Elastic Entity Model + +:role: Admin +:goal: enable the Elastic Entity Model +include::../partials/roles.asciidoc[] +:role!: + +:goal!: + +From the Dev Console, run the command: `DELETE kbn:/internal/entities/managed/enablement` + +[discrete] +[[observability-elastic-entity-model-limitations]] +== Limitations + +* https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cross-cluster-search.html[Cross-cluster search (CCS)] is not supported. EEM cannot leverage data stored on a remote cluster. +* Services are only detected from documents where `service.name` is detected in index patterns that match either `logs-*` or `apm-*`. diff --git a/docs/en/serverless/synthetics/synthetics-get-started-project.asciidoc b/docs/en/serverless/synthetics/synthetics-get-started-project.asciidoc new file mode 100644 index 0000000000..e7c23f2dee --- /dev/null +++ b/docs/en/serverless/synthetics/synthetics-get-started-project.asciidoc @@ -0,0 +1,221 @@ +[[observability-synthetics-get-started-project]] += Create monitors with a Synthetics project + +++++ +Use a Synthetics project +++++ + +A Synthetics project is the most powerful and sophisticated way to configure synthetic monitors. +A Synthetics project lets you define your infrastructure as code, more commonly known as IaaC or Git-ops. +With monitors created and managed in Synthetics projects, you organize your YAML configuration and +JavaScript- or TypeScript-defined monitors on the filesystem, use Git for version control, +and deploy via a CLI tool, usually executed on a CI/CD platform. + +image::images/synthetics-get-started-projects.png[Diagram showing which pieces of software are used to configure monitors, create monitors, and view results when using Synthetic project monitors.] + +This is one of <> you can use to set up a synthetic monitor. + +[discrete] +[[observability-synthetics-get-started-project-prerequisites]] +== Prerequisites + +You must be signed in as a user with <> access. + +// and Monitor Management must be enabled by an administrator as described in Setup role. + +Working with a Synthetics project requires working with the Elastic Synthetics CLI tool, which +can be invoked via the `npx @elastic/synthetics` command. Before getting started +you'll need to: + +. Install https://nodejs.dev/en/[Node.js] +. Install the package: ++ +[source,sh] +---- +npm install -g @elastic/synthetics +---- +. Confirm your system is setup correctly: ++ +[source,sh] +---- +npx @elastic/synthetics -h +---- + +You should also decide where you want to run the monitors before getting started. +You can run monitors in Synthetics projects on one or both of the following: + +* **Elastic's global managed testing infrastructure**: +With Elastic's global managed testing infrastructure, you can create and run monitors in multiple +locations without having to manage your own infrastructure. +Elastic takes care of software updates and capacity planning for you. +* **{private-location}s**: {private-location}s allow you to run monitors from your own premises. +To use {private-location}s you must create a {private-location} before continuing. +For step-by-step instructions, refer to <>. + +[discrete] +[[observability-synthetics-get-started-project-create-a-synthetics-project]] +== Create a Synthetics project + +Start by creating your first Synthetics project. Run the command below to create a new +Synthetics project named `synthetic-project-test` in the current directory. + +[source,sh] +---- +npx @elastic/synthetics init synthetic-project-test +---- + +Then, follow the prompts on screen to set up the correct default variables for your Synthetics project. +When complete, set the `SYNTHETICS_API_KEY` environment variable in your terminal, which is used +to connect to your Observability project: + +. To generate an API key: ++ +.. Go to **Synthetics** in your Observability project. +.. Click **Settings**. +.. Switch to the **Project API Keys** tab. +.. Click **Generate Project API key**. ++ +[IMPORTANT] +==== +To generate a Project API key, you must be logged in as a user with <> access. +==== ++ +[role="screenshot"] +image::images/synthetics-monitor-management-api-key.png[Project API Keys tab in Synthetics settings] ++ +[NOTE] +==== +To use an API key to push to Elastic's global managed testing infrastructure, +the _Elastic managed locations enabled_ toggle must be on when generating the API key. +If the _Elastic managed locations enabled_ toggle is disabled, an administrator has restricted +access to Elastic's global managed testing infrastructure. + +// Read more in the writer role documentation. +==== +. Set the `SYNTHETICS_API_KEY` environment variable in your terminal. +You will most likely want to set this permanently. +This is done differently in https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-7.2#saving-changes-to-environment-variables[Powershell] and https://unix.stackexchange.com/a/117470[Bash]. + +Then, take a look at key files and directories inside your Synthetics project: + +* `journeys` is where you'll add `.ts` and `.js` files defining your browser monitors. +When you create a new Synthetics project, this directory will contain files defining sample monitors. +* `lightweight` is where you'll add `.yaml` files defining your lightweight monitors. +When you create a new Synthetics project, this directory will contain a file defining sample monitors. +* `synthetics.config.ts` contains settings for your Synthetics project. +When you create a new Synthetics project, it will contain some basic configuration options that you can customize later. ++ +[NOTE] +==== +The `synthetics.config.ts` in the sample Synthetics project uses a location on Elastic's global managed testing infrastructure. +Administrators can restrict access to Elastic's global managed testing infrastructure. +When you attempt to <>, +if you see an error stating that you don't have permission to use Elastic managed global locations, +refer to the <> for guidance. +==== +* `package.json` contains NPM settings for your Synthetics project. Learn more in the https://docs.npmjs.com/about-packages-and-modules[NPM documentation]. +* `.github` contains sample workflow files to use with GitHub Actions. + +[discrete] +[[observability-synthetics-get-started-project-examine-sample-monitors]] +== Examine sample monitors + +Inside the `lightweight` directory you'll find sample lightweight monitors. +Here's an example of a YAML file defining a lightweight monitor: + +[source,yml] +---- +# lightweight.yml +heartbeat.monitors: +- type: http + name: Todos Lightweight + id: todos-lightweight + urls: "https://elastic.github.io/synthetics-demo/" + schedule: '@every 1m' +---- + +For more details on lightweight monitor configuration options, +refer to <>. + +Inside the `journeys` directory you'll find sample browser monitors. +Here's an example of a TypeScript file defining a browser monitor: + +[source,ts] +---- +// example.journey.ts +import { journey, step, monitor, expect } from '@elastic/synthetics'; +journey('My Example Journey', ({ page, params }) => { + // Only relevant for the push command to create + // monitors in your Observability project + monitor.use({ + id: 'example-monitor', + schedule: 10, + }); + step('launch application', async () => { + await page.goto(params.url); + }); + step('assert title', async () => { + const header = await page.locator('h1'); + expect(await header.textContent()).toBe('todos'); + }); +}); +---- + +For more details on writing journeys and configuring browser monitors, +refer to <>. + +[discrete] +[[observability-synthetics-get-started-project-test-and-connect-to-your-observability-project]] +== Test and connect to your Observability project + +While inside the Synthetics project directory you can do two things with the `npx @elastic/synthetics` command: + +* Test browser-based monitors locally. To run all journeys defined in `.ts` and `.js` files: ++ +[source,sh] +---- +npx @elastic/synthetics journeys +---- +* Push all monitor configurations to an Observability project. +Run the following command from inside your Synthetics project directory: ++ +[source,sh] +---- +npx @elastic/synthetics push --auth $SYNTHETICS_API_KEY --url +---- + +One monitor will appear in the Synthetics UI for each journey or +lightweight monitor, and you'll manage all monitors from your local environment. +For more details on using the `push` command, refer to <>. + +[NOTE] +==== +If you've <>, +you can `push` to that {private-location}. + +To list available {private-location}s, +run the <> +with the URL for the Observability project from which to fetch available locations. +==== + +[discrete] +[[observability-synthetics-get-started-project-view-in-your-observability-project]] +== View in your Observability project + +Then, go to **Synthetics** in your Observability project. You should see your newly pushed monitors running. +You can also go to the **Management** tab to see the monitors' configuration settings. + +[NOTE] +==== +When a monitor is created or updated, the first run might not occur immediately, but the time it takes for the first run to occur will be less than the monitor's configured frequency. For example, if you create a monitor and configure it to run every 10 minutes, the first run will occur within 10 minutes of being created. After the first run, the monitor will begin running regularly based on the configured frequency. You can run a manual test if you want to see the results more quickly. +==== + +[discrete] +[[observability-synthetics-get-started-project-next-steps]] +== Next steps + +Learn more about: + +* <> +* <> +* <> diff --git a/docs/en/serverless/synthetics/synthetics-settings.asciidoc b/docs/en/serverless/synthetics/synthetics-settings.asciidoc new file mode 100644 index 0000000000..77fd90b961 --- /dev/null +++ b/docs/en/serverless/synthetics/synthetics-settings.asciidoc @@ -0,0 +1,116 @@ +[[observability-synthetics-settings]] += Configure Synthetics settings + +There are several Synthetics settings you can adjust in your Observability project. + +[discrete] +[[synthetics-settings-alerting]] +== Alerting + +Alerting enables you to detect complex conditions using **rules** across {obs-serverless} +and send a notification using **connectors**. + +When you create a new synthetic monitor, new default synthetics rules will be applied. +To edit the default rules: + +. Click **Alerts and rules** in the top bar. +. Select a rule to open a panel where you can edit the rule's configuration: ++ +** **Monitor status rule** for receiving notifications for errors and outages. +** **TLS certificate rule** for receiving notifications when one or more of your HTTP or TCP +lightweight monitors has a TLS certificate expiring within a specified threshold or when +it exceeds an age limit. + +However, the automatically created Synthetics internal alert is intentionally preconfigured, +and some configuration options can't be changed. +For example, you can't change how often it checks the rule. + +If you need specific alerting behavior, set up a different rule. +To view all existing rules or create a new rule: + +. Click **Alerts and rules** in the top bar. +. Click **Manage rules** to go to the _Rules_ page. + +On the _Rules_ page, you can manage the default synthetics rules including snoozing rules, +disabling rules, deleting rules, and more. + +[role="screenshot"] +image::images/synthetics-settings-disable-default-rules.png[Rules page with default Synthetics rules] + +[NOTE] +==== +You can enable and disable default alerts for individual monitors in a few ways: + +* In the UI when you <>. +* In the UI _after_ a monitor is already created, on the **Monitors** page +or on the **Edit monitor** page for the monitor. +* In a Synthetics project when <>. +==== + +In the **Alerting** tab on the Synthetics Settings page, you can add and configure connectors. +If you are running in Elastic Cloud, then an SMTP connector will automatically be configured, +allowing you to easily set up email alerts. +Read more about all available connectors in <>. + +[role="screenshot"] +image::images/synthetics-settings-alerting.png[Alerting tab on the Synthetics Settings page in an Observability project] + +[discrete] +[[synthetics-settings-private-locations]] +== {private-location}s + +{private-location}s allow you to run monitors from your own premises. + +In the **{private-location}s** tab, you can add and manage {private-location}s. +After you <> and <>, +this is where you will add the {private-location} so you can specify it as the location for +a monitor created using the Synthetics UI or a Synthetics project. + +[role="screenshot"] +image::images/synthetics-settings-private-locations.png[{private-location}s tab on the Synthetics Settings page in an Observability project] + +[discrete] +[[synthetics-settings-global-parameters]] +== Global parameters + +Global parameters can be defined once and used across the configuration of lightweight and browser-based monitors. + +In the **Global parameters** tab, you can define variables and parameters. +This is one of several methods you can use to define variables and parameters. +To learn more about the other methods and which methods take precedence over others, see <>. + +[role="screenshot"] +image::images/synthetics-settings-global-parameters.png[Global parameters tab on the Synthetics Settings page in an Observability project] + +[discrete] +[[synthetics-settings-data-retention]] +== Data retention + +When you set up a synthetic monitor, data from the monitor is saved in {ref}/data-streams.html[Elasticsearch data streams], +an append-only structure in Elasticsearch. +You can customize how long synthetics data is stored by creating your own index lifecycle policy +and attaching it to the relevant custom Component Template in Stack Management. + +In the **Data retention** tab, use the links to jump to the relevant policy for each data stream. +Learn more about the data included in each data stream in <>. + +[role="screenshot"] +image::images/synthetics-settings-data-retention.png[Data retention tab on the Synthetics Settings page in an Observability project] + +[discrete] +[[synthetics-settings-api-keys]] +== Project API keys + +Project API keys are used to push monitors created and managed in a Synthetics project remotely from a CLI or CD pipeline. + +In the **Project API keys** tab, you can generate API keys to use with your Synthetics project. +Learn more about using API keys in <>. + +[IMPORTANT] +==== +To create a Project API key, you must be logged in as a user with +<> access. +==== + +[role="screenshot"] +image::images/synthetics-settings-api-keys.png[Project API keys tab on the Synthetics Settings page in an Observability project] diff --git a/docs/en/serverless/transclusion/apm/guide/diagrams/apm-otel-architecture.asciidoc b/docs/en/serverless/transclusion/apm/guide/diagrams/apm-otel-architecture.asciidoc new file mode 100644 index 0000000000..a3ce1a8c5f --- /dev/null +++ b/docs/en/serverless/transclusion/apm/guide/diagrams/apm-otel-architecture.asciidoc @@ -0,0 +1,513 @@ +// ++++ + +//
+ +// + +// + +// + +// {obs-serverless} + +// + +// Kibana Observability apps + +// + +// Elasticsearch + +// + +// Elastic Agent + +// + +// APM Integration + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// Edge machines + +// Protocol + +// + +// + +// + +// + +// + +// + +// Hosted on Elastic Cloud + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// API/SDK + +// + +// Elastic APM agent + +// OpenTelemetry API/SDK with Elastic APM agents + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// API/SDK + +// OpenTelemetry Agents + +// + +// + +// + +// + +// OTLP Collector + +// OpenTelemetry Collectors + +// + +// Click to see all supported languages + +// here + +// Available in Java, .NET, Node.js, and Python + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +// + +//
+ +// ++++ diff --git a/docs/en/serverless/transclusion/synthetics/global-managed-paid-for.asciidoc b/docs/en/serverless/transclusion/synthetics/global-managed-paid-for.asciidoc new file mode 100644 index 0000000000..58a3530130 --- /dev/null +++ b/docs/en/serverless/transclusion/synthetics/global-managed-paid-for.asciidoc @@ -0,0 +1,2 @@ +Executing synthetic tests on Elastic's global managed testing infrastructure incurs an additional charge. Tests are charged under one of two new billing dimensions depending on the monitor type. For _browser monitor_ usage, there is a fee per test run. For _lightweight monitor_ usage, there is a fee per region in which you run any monitors regardless of the number of test runs. +For more details, refer to the https://www.elastic.co/pricing/serverless-observability[{obs-serverless} pricing page]. diff --git a/docs/en/serverless/what-is-observability-serverless.asciidoc b/docs/en/serverless/what-is-observability-serverless.asciidoc new file mode 100644 index 0000000000..42474c247a --- /dev/null +++ b/docs/en/serverless/what-is-observability-serverless.asciidoc @@ -0,0 +1,27 @@ +// :keywords: serverless, observability, overview + +{obs-serverless} accelerates problem resolution with open, flexible, and unified observability powered by advanced machine learning and analytics. Elastic ingests all operational and business telemetry and correlates for faster root cause detection. + +Not using serverless? Go to the {observability-guide}/index.html[Elastic Observability docs]. + +[discrete] +== Get started + +* <>: Discover more about our observability features and how to get started. +* <>: Scan your host to detect and collect logs and metrics. +* <>: Create the Kubernetes resources that are required to monitor your cluster infrastructure. +* <>: Add your log data to {obs-serverless} and start exploring your logs. +* <>: Collect Application Performance Monitoring (APM) data and visualize it in real time. +* <>: Add your metrics data to {obs-serverless} and visualize it in real time. + +[discrete] +== How to + +* <>: Use Discover to explore your log data. +* <>: Create rules to detect complex conditions and trigger alerts. +* <>: Measure key metrics important to the business. +* <>: Find unusual behavior in time series data. +* <>: Monitor your software services and applications in real time. +* <>: Reuse existing APM instrumentation to capture logs, traces, and metrics. +* <>: Get a metrics-driven view of your hosts backed by an interface called Lens. +