Sedai
Search…
πŸ“ˆ
Integrate Monitoring Providers
Learn how to connect your monitoring data once your AWS account has been integrated.
By default, Sedai will automatically pull CloudWatch data for all connected AWS accounts but you can also optionally add any of the following accounts as well:

CloudWatch

CloudWatch is typically the default monitoring provider for AWS cloud provider accounts.
To add a CloudWatch account in Sedai to your AWS account, you must provide the following:
  • Instance dimension
  • Application dimension
  • Load balancer dimension
  • Instance ID pattern
  • Credentials
Sedai offers three options to capture CloudWatch credentials:
  • Using credentials from an already added AWS account (default)
  • Using AWS environment credentials
  • Using CloudWatch credentials (requires user input)
For more information about obtaining access keys, please view:
Understanding and getting your AWS credentials - AWS General Reference

AppDynamics

  • Controller name
  • Controller endpoint
  • Client ID (learn more)
  • Client secret key (learn more)
  • Instance dimension
  • Application dimension
  • Load balancer dimension
  • Instance ID pattern
β€ŒOnce the controller name and endpoint URL are added, an API client will be created to provide secure access to the Controller, following which the client secret and the client id are received.
For more information, please view AppDynamics documentation:
API Clients

Datadog

β€ŒTo add a Datadog account, you must provide the following:
β€ŒTo get the API and application key, please view:
API and Application Keys
Datadog Infrastructure and Application Monitoring

New Relic

For more information about adding a New Relic account, please view:
New Relic API keys

Netdata

To add a Netdata account, you must provide the following:
  • Nickname
  • Endpoint URL
  • Instance dimension
  • Application dimension
  • Load balancer dimension
  • Instance ID pattern

Prometheus

Sedai can receive monitoring data from multiple Prometheus instances running in an on-premise or public cloud.
  • Endpoint name
  • Endpoint URL
  • Instance dimension (what Sedai should reference to identify instances)
  • Application dimension
  • Load balancer dimension
  • Instance ID pattern
  • Credentials (select one of the following):
    • No authentication
    • JWT (requires a token)

Signal FX

To add a SignalFX account, you must provide the following:
  • API server URL
    • Example format: https://api.YOUR_SIGNALFX_REALM.signalfx.com
  • API key
  • Instance dimension
  • Application dimension
  • Load balancer dimension
  • Instance ID pattern
β€ŒFollow the instructions documented in the link below, To generate an API access token, please view:
Create and manage authentication tokens using Splunk Observability Cloud β€” Splunk Observability Cloud documentation

Wavefront

Wavefront by VMware is a hosted metric monitoring-as-a-service for cloud native application and infrastructure.
To add a Wavefront account in Sedai to your AWS account, you must provide the following:
  • API server (this is your <wavefront_instance> url, such as https://longboard.wavefront.com/)
  • Instance dimension
    • Example: pod_name, pod
  • Application dimension
    • Example: label.app.kubernetes.io/name, label.app, label.name
  • Load balancer dimension
    • Example: load_balancer_name, service, label.io.kompose.service, envoy_cluster_name
  • Container dimension
    • Example: container, container_name
Testing the Wavefront connection does not currently work within Sedai, however if the API key is valid the integration will connect.

Defining dimensions

Wavefront dimensions can vary by product version. To find your unique Wavefront dimensions, go to the Browse tab from your Wavefront platform and search for kubernetes.pod_container.cpu.usage_rate metrics in the table view.
This will give an output similar to the example below. Note the following code lines for examples of different dimension values:
  • Line 6: Container dimension: container_name
  • Line 10: Application (Kubernetes Workload) dimension: label.app.kubernetes.io/name, label.app, label.name
  • Line 17: Load balancer (typically service) dimension: label.io.kompose.service
  • Line 28: Pod dimension: pod_name
1
kubernetes.pod_container.cpu.usage_rate: -
2
Source: ip-192-168-185-37.us-east-2.compute.internal
3
cluster: sedaivector
4
container_base_image: nvanderhoeven/pokeapi_app
5
container_name: pokeapi-app
6
label.app: -
7
label.app.kubernetes.io/component: -
8
label.app.kubernetes.io/instance: -
9
label.app.kubernetes.io/managed-by: -
10
label.app.kubernetes.io/name: -
11
label.app.kubernetes.io/version: -
12
label.chart: -
13
label.component: -
14
label.eks.amazonaws.com/component: -
15
label.helm.sh/chart: -
16
label.heritage: -
17
label.io.kompose.service: app
18
label.k8s-app: -
19
label.mode: -
20
label.name: -
21
label.olm.catalogSource: -
22
label.plane: -
23
label.release: -
24
label.statefulset.kubernetes.io/pod-name: -
25
label.vizier-name: -
26
namespace_name: poki-test-1
27
nodename: ip-192-168-185-37.us-east-2.compute.internal
28
pod_name: app-5b87b74bc6-xd9sj
29
type: pod_container
30
Value: 1.200k
Copied!

Custom metrics

In order to add custom metrics such as duration or traffic, you will need to additionally define their dimensions. For example, if nginx is the ingress/envoy controller, Sedai supports nginx/envoy ingress metrics.
In the example below, the load balancer dimension for these metrics is service in the first code block (line 16) and envoy_cluster_name in the second code block (line 4).
1
nginx.ingress.controller.requests.counter: -
2
Source: ip-192-168-185-37.us-east-2.compute.internal
3
_host: hello-test.info
4
cluster: sedaivector
5
controller_class: k8s.io/ingress-nginx
6
controller_namespace: ingress-nginx
7
controller_pod: ingress-nginx-controller-7dfdd55674-zjnrr
8
ingress: opt-ingress
9
label.app.kubernetes.io/component: controller
10
label.app.kubernetes.io/instance: ingress-nginx
11
label.app.kubernetes.io/name: ingress-nginx
12
method: GET
13
namespace: optimization-test
14
path: /pyroglyph
15
pod: ingress-nginx-controller-7dfdd55674-zjnrr
16
service: pyroglyph-service
17
status: 200
18
Value: 10.004M
Copied!
1
envoy.cluster.upstream.rq.completed.counter: -
2
Source: ip-192-168-48-229.us-east-2.compute.internal
3
cluster: sedaivector
4
envoy_cluster_name: default_httpbin_80
5
label.app.kubernetes.io/component: envoy
6
label.app.kubernetes.io/instance: my-release
7
label.app.kubernetes.io/managed-by: Helm
8
label.app.kubernetes.io/name: contour
9
label.helm.sh/chart: contour-7.3.5
10
namespace: projectcontour
11
pod: my-release-contour-envoy-h5jvk
12
Value: 2.574M
Copied!