Chapter 21. Using the Skupper console
You can use the Skupper console to monitor and troubleshoot your application network. The console provides a visual overview of the sites, links, services, and communication metrics.
Prerequisites
- Access to an Kubernetes cluster with Network Observer installed.
- A site is created in a namespace
Procedure
- Change context to the site namespace.
If you are using the OpenShift console:
-
Navigate to
. - Choose Red Hat Service Interconnect Network Observer Operator from the list of available Operators, and then click .
-
Navigate to
If you are not using the OpenShift console:
Create a file named
network-observer.yamlwith the following CR:apiVersion: observability.skupper.io/v2alpha1 kind: NetworkObserver metadata: name: networkobserver-sample namespace: west spec: {}Change the namespace value to match the site namespace.
Apply the CR YAML:
$ kubectl apply -f network-observer.yamlDetermine the console URL:
kubectl get --namespace west -o jsonpath="{.spec.host}" route networkobserver-sample-network-observer- Navigate to the console.
21.1. Configuring the Network observer Copy linkLink copied to clipboard!
Currently the primary purpose of the Network Observer is to provide a console for monitoring your application network. This section describes advanced configuration.
- Change context to a site namespace.
Apply a CR to create the Network Observer instance
The following CR shows the supported parameters that you can use to configure the Network observer instance:
apiVersion: observability.skupper.io/v2alpha1 kind: NetworkObserver metadata: name: networkobserver-sample namespace: west spec: # Resource requests and limits resources: requests: cpu: "250m" memory: "4Gi" limits: cpu: "1" memory: "8Gi" # Authentication strategies auth: # strategy is one of none, basic, or openshift strategy: "openshift" openshift: # createCookieSecret - # for the openshift oauth2 proxy. createCookieSecret: true # cookieSecretName name of the session cookie secret. cookieSecretName: "" # Service account for openshift auth serviceAccount: create: true nameOverride: ""See the table below for explanation of the parameters.
Verify the configuration, enter:
oc describe networkobserver networkobserver-sample -n westNote that the parameters listed in output, not related to the CR above, are not configurable.
Parameters reference
The following table describes the configuration parameters:
| Parameter | Type | Description / Implications |
|---|---|---|
|
| String | The minimum CPU guaranteed to the Network observer. Increase this if the console feels sluggish under high network load. |
|
| String | The initial memory allocation. 4Gi is the recommended minimum for medium-sized networks. |
|
| String | The maximum CPU the Network observer can consume. |
|
| String | The upper bound of memory. If memory usage exceeds this limit, the pod is terminated due to insufficient memory. |
|
| String |
Defines how users log in. Options: |
|
| Boolean |
When |
|
| Boolean |
When |
Troubleshooting
If you are concerned about Network Observer resources, consider using standard techniques to monitor those resources. The following example demonstrates how to configure a Prometheus alert that triggers when memory usage exceeds 90% of the defined limit.
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: network-observer-memory-alert
namespace: west
spec:
groups:
- name: network-observer.rules
rules:
- alert: NetworkObserverHighMemory
expr: |
(container_memory_working_set_bytes{namespace="west", container="network-observer"}
/
kube_pod_container_resource_limits{namespace="west", container="network-observer", resource="memory"}) > 0.9
for: 5m
labels:
severity: warning
annotations:
summary: "Network Observer pod in namespace {{ $labels.namespace }} is using > 90% of its memory limit."
description: "Pod {{ $labels.pod }} is currently using {{ $value | humanizePercentage }} of its memory limit."