Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: publish v2.8 feature docs #521

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
32 changes: 32 additions & 0 deletions docs/versioned_docs/version-v2.8.0/01-index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: "Arcus Observability"
layout: default
slug: /
sidebar_label: Welcome
---

# Introduction

Arcus Observability allows you to work easily with Azure Application Insights telemetry by making use of the common `ILogger` infrastructure to track dependencies, log custom metrics and log multi-dimensional telemetry data. The library supports multiple telemetry types like tracking dependencies, requests, events, metrics, while also be able to filter with Serilog filters and enrich with custom correlation.

![Logger Arcus - Application Insights](/img/logger-arcus-appinsights.png)

# Guidance

- [Using Arcus & Serilog in ASP.NET Core](./02-Guidance/use-with-dotnet-and-aspnetcore.md)
- [Using Arcus & Serilog in Azure Functions](./02-Guidance/use-with-dotnet-and-functions.md)

# Installation

The Arcus.Observability.Correlation package can be installed via NuGet:

```shell
PM > Install-Package Arcus.Observability.Serilog.Sinks.ApplicationInsights
```

For more granular packages we recommend reading [the documentation](./03-Features/sinks/azure-application-insights.md).

# License
This is licensed under The MIT License (MIT). Which means that you can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the web application. But you always need to state that Codit is the original author of this web application.

*[Full license here](https://github.com/arcus-azure/arcus.observability/blob/master/LICENSE)*
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: "Service-to-service correlation?"
layout: default
---

# Service-to-service correlation
The concept of service-to-service correlation is big and complex and spans multiple Arcus libraries. This user-guide will walk through all the available Arcus features that work together to facilitate service-to-service correlation in your application.

## What is service-to-service correlation?
Service-to-service correlation is a way to describe a relationship between different components where each 'component' represents a separate application. This could be, for example, an API call that results in an Azure Service Bus message that will be picked up by a message pump, or an Azure Function that calls an additional API after receiving a message from a queue.

Anytime one application calls another, that's where service-to-service correlation comes in. This way of correlation makes sure that the relationship of a single (business) transaction doesn't stop at the borders of one application or component, but continues in the other application. The end result is a clear overview of all the components involved.

![Arcus service-to-service application map](/media/service-to-service-correlation-application-map.png)

When using Arcus for service-to-service correlation, you'll see the this relationship in Application Insights in the [end-to-end transaction view](https://docs.microsoft.com/en-us/azure/azure-monitor/app/transaction-diagnostics):

![Arcus service-to-service correlation relationship](/media/service-to-service-correlation-relationship.png)

## Why should I use service-to-service correlation?
Adding service-to-service correlation to your application adds many advantages:
* ✔ Quickly spot performance bottlenecks and failures
* ✔ Clear overview of used (Azure) resources
* ✔ Effective architectural decision-making on application flow

## What Arcus components support service-to-service correlation?
Currently, we support service-to-service correlation with several types of components:
* [Arcus Web API](https://webapi.arcus-azure.net/features/correlation)
* [Arcus Azure Service Bus message pump/router](https://messaging.arcus-azure.net/)
* And [other built-in and custom dependencies](https://observability.arcus-azure.net/Features/writing-different-telemetry-types)

We're working on adding Azure EventHubs message pump to the mix.

> ⚠ Service-to-service correlation is only available for Azure Functions that run in-process. Out-of-process / isolated Azure Functions doesn't have (yet) the necessary built-in Arcus functionality to facilitate service-to-service correlation.

> ⚠ Service-to-service correlation is currently only supported for projects that uses Application Insights as their Serilog logging system. If you want to use Arcus' service-to-service functionality outside Application Insights, [please let us know](https://github.com/arcus-azure/arcus.observability/issues/new/choose).

## How do I add service-to-service correlation to my application components?
Service-to-service correlation should be added on both the sending and receiving components of your project so the internal Arcus functionality can link the request/response correctly in Application Insights. The following user-guides will go over the sending and receiving side of Web API's and Azure Service Bus resources:

* [Use service-to-service correlation in Web API solutions](use-service-to-service-correlation-in-web-api.md)
* [Use service-to-service correlation in Service Bus solutions](use-service-to-service-correlation-in-service-bus.md)