Skip to content

Commit b15953e

Browse files
authored
Documentation update, health rules polishing (#2389)
* Documentation update, health rules polishing - Rename IngressLatencyTrend => IngressHTTPLatencyTrend to distinguish with our other TCP latency - Mark InstallDemoLoki as Unsupported - Rename Alerts.md => HealthRules.md, and refresh its content; link to runbooks for details * Regenerate asciidoc * fix test * Update CSV desc with loki demo mode
1 parent 3ff8e19 commit b15953e

23 files changed

+580
-157
lines changed

api/flowcollector/v1beta2/flowcollector_alert_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const (
3434
HealthRuleExternalEgressHighTrend HealthRuleTemplate = "ExternalEgressHighTrend"
3535
HealthRuleExternalIngressHighTrend HealthRuleTemplate = "ExternalIngressHighTrend"
3636
HealthRuleIngress5xxErrors HealthRuleTemplate = "Ingress5xxErrors"
37-
HealthRuleIngressLatencyTrend HealthRuleTemplate = "IngressLatencyTrend"
37+
HealthRuleIngressHTTPLatencyTrend HealthRuleTemplate = "IngressHTTPLatencyTrend"
3838

3939
GroupByNode HealthRuleGroupBy = "Node"
4040
GroupByNamespace HealthRuleGroupBy = "Namespace"
@@ -47,10 +47,10 @@ const (
4747
type FLPHealthRule struct {
4848
// Health rule template name.
4949
// Possible values are: `PacketDropsByKernel`, `PacketDropsByDevice`, `IPsecErrors`, `NetpolDenied`,
50-
// `LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressLatencyTrend`.
50+
// `LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressHTTPLatencyTrend`.
5151
// Note: `NetObservNoFlows` and `NetObservLokiError` are alert-only and cannot be used as health rules.
52-
// More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
53-
// +kubebuilder:validation:Enum:="PacketDropsByKernel";"PacketDropsByDevice";"IPsecErrors";"NetpolDenied";"LatencyHighTrend";"DNSErrors";"DNSNxDomain";"ExternalEgressHighTrend";"ExternalIngressHighTrend";"Ingress5xxErrors";"IngressLatencyTrend"
52+
// More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
53+
// +kubebuilder:validation:Enum:="PacketDropsByKernel";"PacketDropsByDevice";"IPsecErrors";"NetpolDenied";"LatencyHighTrend";"DNSErrors";"DNSNxDomain";"ExternalEgressHighTrend";"ExternalIngressHighTrend";"Ingress5xxErrors";"IngressHTTPLatencyTrend"
5454
// +required
5555
Template HealthRuleTemplate `json:"template,omitempty"`
5656

@@ -211,7 +211,7 @@ func (g *FLPHealthRule) IsAllowed(spec *FlowCollectorSpec) (bool, string) {
211211
if !spec.Agent.EBPF.IsNetworkEventsEnabled() {
212212
return false, fmt.Sprintf("HealthRule %s requires the %s agent feature to be enabled", g.Template, NetworkEvents)
213213
}
214-
case AlertNoFlows, AlertLokiError, HealthRulePacketDropsByDevice, HealthRuleExternalEgressHighTrend, HealthRuleExternalIngressHighTrend, HealthRuleIngress5xxErrors, HealthRuleIngressLatencyTrend:
214+
case AlertNoFlows, AlertLokiError, HealthRulePacketDropsByDevice, HealthRuleExternalEgressHighTrend, HealthRuleExternalIngressHighTrend, HealthRuleIngress5xxErrors, HealthRuleIngressHTTPLatencyTrend:
215215
return true, ""
216216
}
217217
return true, ""

api/flowcollector/v1beta2/flowcollector_defaults.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ var (
204204
},
205205
},
206206
{
207-
Template: HealthRuleIngressLatencyTrend,
207+
Template: HealthRuleIngressHTTPLatencyTrend,
208208
Variants: []HealthRuleVariant{
209209
{
210210
Thresholds: HealthRuleThresholds{

api/flowcollector/v1beta2/flowcollector_types.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -588,14 +588,14 @@ type FLPMetrics struct {
588588

589589
// `disableAlerts` is a list of alert groups that should be disabled from the default set of alerts.
590590
// Possible values are: `NetObservNoFlows`, `NetObservLokiError`, `PacketDropsByKernel`, `PacketDropsByDevice`, `IPsecErrors`, `NetpolDenied`,
591-
// `LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`.
592-
// More information on alerts: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
591+
// `LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressHTTPLatencyTrend`.
592+
// More information on alerts: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
593593
// +optional
594594
DisableAlerts []HealthRuleTemplate `json:"disableAlerts"`
595595

596596
// `healthRules` is a list of health rules to be created for Prometheus, organized by templates and variants.
597597
// Each health rule can be configured to generate either alerts or recording rules based on the mode field.
598-
// More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
598+
// More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
599599
// +optional
600600
HealthRules *[]FLPHealthRule `json:"healthRules"`
601601
}
@@ -901,6 +901,7 @@ type LokiMicroservicesParams struct {
901901
type LokiMonolithParams struct {
902902
// Set `installDemoLoki` to `true` to automatically create Loki deployment, service and storage.
903903
// This is useful for development and demo purposes. Do not use it in production.
904+
// [Unsupported (*)].
904905
//+kubebuilder:default:=false
905906
InstallDemoLoki *bool `json:"installDemoLoki,omitempty"`
906907

api/flowcollector/v1beta2/flowcollector_validation_webhook.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ func (v *validator) isFLPHealthRuleGroupBySupported(template HealthRuleTemplate,
394394
return variant.GroupBy != GroupByWorkload
395395
case HealthRuleIPsecErrors:
396396
return variant.GroupBy != GroupByWorkload && variant.GroupBy != GroupByNamespace
397-
case HealthRuleIngress5xxErrors, HealthRuleIngressLatencyTrend:
397+
case HealthRuleIngress5xxErrors, HealthRuleIngressHTTPLatencyTrend:
398398
return variant.GroupBy != GroupByNode && variant.GroupBy != GroupByWorkload
399399
case HealthRulePacketDropsByKernel, HealthRuleDNSErrors, HealthRuleDNSNxDomain, HealthRuleExternalEgressHighTrend, HealthRuleExternalIngressHighTrend, HealthRuleLatencyHighTrend, HealthRuleNetpolDenied:
400400
return true
@@ -463,7 +463,7 @@ func GetElligibleMetricsForAlert(template HealthRuleTemplate, alertDef *HealthRu
463463
case HealthRuleNetpolDenied:
464464
metricPatterns = []string{`%s_network_policy_events_total`}
465465
totalMetricPatterns = []string{"%s_flows_total"}
466-
case AlertNoFlows, AlertLokiError, HealthRulePacketDropsByDevice, HealthRuleIngress5xxErrors, HealthRuleIngressLatencyTrend:
466+
case AlertNoFlows, AlertLokiError, HealthRulePacketDropsByDevice, HealthRuleIngress5xxErrors, HealthRuleIngressHTTPLatencyTrend:
467467
// nothing - these rules don't use NetObserv metrics
468468
return nil, nil
469469
}

bundle/manifests/flows.netobserv.io_flowcollectors.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4156,6 +4156,7 @@ spec:
41564156
description: |-
41574157
Set `installDemoLoki` to `true` to automatically create Loki deployment, service and storage.
41584158
This is useful for development and demo purposes. Do not use it in production.
4159+
[Unsupported (*)].
41594160
type: boolean
41604161
tenantID:
41614162
default: netobserv
@@ -5835,16 +5836,16 @@ spec:
58355836
description: |-
58365837
`disableAlerts` is a list of alert groups that should be disabled from the default set of alerts.
58375838
Possible values are: `NetObservNoFlows`, `NetObservLokiError`, `PacketDropsByKernel`, `PacketDropsByDevice`, `IPsecErrors`, `NetpolDenied`,
5838-
`LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`.
5839-
More information on alerts: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
5839+
`LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressHTTPLatencyTrend`.
5840+
More information on alerts: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
58405841
items:
58415842
type: string
58425843
type: array
58435844
healthRules:
58445845
description: |-
58455846
`healthRules` is a list of health rules to be created for Prometheus, organized by templates and variants.
58465847
Each health rule can be configured to generate either alerts or recording rules based on the mode field.
5847-
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
5848+
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
58485849
items:
58495850
properties:
58505851
mode:
@@ -5863,9 +5864,9 @@ spec:
58635864
description: |-
58645865
Health rule template name.
58655866
Possible values are: `PacketDropsByKernel`, `PacketDropsByDevice`, `IPsecErrors`, `NetpolDenied`,
5866-
`LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressLatencyTrend`.
5867+
`LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressHTTPLatencyTrend`.
58675868
Note: `NetObservNoFlows` and `NetObservLokiError` are alert-only and cannot be used as health rules.
5868-
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
5869+
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
58695870
enum:
58705871
- PacketDropsByKernel
58715872
- PacketDropsByDevice
@@ -5877,7 +5878,7 @@ spec:
58775878
- ExternalEgressHighTrend
58785879
- ExternalIngressHighTrend
58795880
- Ingress5xxErrors
5880-
- IngressLatencyTrend
5881+
- IngressHTTPLatencyTrend
58815882
type: string
58825883
variants:
58835884
description: A list of variants for this template

bundle/manifests/netobserv-operator.clusterserviceversion.yaml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -525,10 +525,10 @@ spec:
525525
name: flowmetrics.flows.netobserv.io
526526
version: v1alpha1
527527
description: |-
528-
NetObserv Operator is an OpenShift / Kubernetes operator for network observability. It deploys a monitoring pipeline that consists in:
528+
NetObserv Operator is an OpenShift / Kubernetes operator for network observability. It deploys a monitoring pipeline consisting in:
529529
- an eBPF agent, that generates network flows from captured packets
530530
- flowlogs-pipeline, a component that collects, enriches and exports these flows
531-
- when used in OpenShift, a Console plugin for flows visualization with powerful filtering options, a topology representation and more
531+
- a web console for flows visualization with powerful filtering options, a topology representation and more
532532
533533
Flow data is then available in multiple ways, each optional:
534534
@@ -548,16 +548,20 @@ spec:
548548
549549
- Installing using [Grafana's official documentation](https://grafana.com/docs/loki/latest/). Here also we wrote a ["distributed Loki" step by step guide](https://github.com/netobserv/documents/blob/main/loki_distributed.md).
550550
551-
For a quick try that is not suitable for production and not scalable (it deploys a single pod, configures a 10GB storage PVC, with 24 hours of retention), you can simply run the following commands:
551+
For a quick try that is not suitable for production and not scalable, the demo mode can be configured in `FlowCollector` with:
552552
553-
```
554-
kubectl create namespace netobserv
555-
kubectl apply -f <(curl -L https://raw.githubusercontent.com/netobserv/documents/5410e65b8e05aaabd1244a9524cfedd8ac8c56b5/examples/zero-click-loki/1-storage.yaml) -n netobserv
556-
kubectl apply -f <(curl -L https://raw.githubusercontent.com/netobserv/documents/5410e65b8e05aaabd1244a9524cfedd8ac8c56b5/examples/zero-click-loki/2-loki.yaml) -n netobserv
553+
```yaml
554+
spec:
555+
loki:
556+
mode: Monolithic
557+
monolithic:
558+
installDemoLoki: true
557559
```
558560
561+
It deploys a single pod, configures a 10GB storage PVC, with 24 hours of retention.
562+
559563
If you prefer to not use Loki, you must set `spec.loki.enable` to `false` in `FlowCollector`.
560-
In that case, you can still get the Prometheus metrics or export raw flows to a custom collector. But be aware that some of the Console plugin features will be disabled. For instance, you will not be able to view raw flows there, and the metrics / topology will have a more limited level of details, missing information such as pods or IPs.
564+
In that case, you still get the Prometheus metrics or export raw flows to a custom collector. But be aware that some of the Console plugin features will be disabled. For instance, you will not be able to view raw flows there, and the metrics / topology will have a more limited level of details, missing information such as pods or IPs.
561565
562566
### Kafka
563567
@@ -585,8 +589,6 @@ spec:
585589
586590
- Loki (`spec.loki`): configure here how to reach Loki. The default values match the Loki quick install paths mentioned above, but you might have to configure differently if you used another installation method. Make sure to disable it (`spec.loki.enable`) if you don't want to use Loki.
587591
588-
- Quick filters (`spec.consolePlugin.quickFilters`): configure preset filters to be displayed in the Console plugin. They offer a way to quickly switch from filters to others, such as showing / hiding pods network, or infrastructure network, or application network, etc. They can be tuned to reflect the different workloads running on your cluster. For a list of available filters, [check this page](https://github.com/netobserv/network-observability-operator/blob/1.10.1-community/docs/QuickFilters.md).
589-
590592
- Kafka (`spec.deploymentModel: Kafka` and `spec.kafka`): when enabled, integrates the flow collection pipeline with Kafka, by splitting ingestion from transformation (kube enrichment, derived metrics, ...). Kafka can provide better scalability, resiliency and high availability ([view more details](https://www.redhat.com/en/topics/integration/what-is-apache-kafka)). Assumes Kafka is already deployed and a topic is created.
591593
592594
- Exporters (`spec.exporters`) an optional list of exporters to which to send enriched flows. KAFKA and IPFIX exporters are supported. This allows you to define any custom storage or processing that can read from Kafka or use the IPFIX standard.

config/crd/bases/flows.netobserv.io_flowcollectors.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3824,6 +3824,7 @@ spec:
38243824
description: |-
38253825
Set `installDemoLoki` to `true` to automatically create Loki deployment, service and storage.
38263826
This is useful for development and demo purposes. Do not use it in production.
3827+
[Unsupported (*)].
38273828
type: boolean
38283829
tenantID:
38293830
default: netobserv
@@ -5397,16 +5398,16 @@ spec:
53975398
description: |-
53985399
`disableAlerts` is a list of alert groups that should be disabled from the default set of alerts.
53995400
Possible values are: `NetObservNoFlows`, `NetObservLokiError`, `PacketDropsByKernel`, `PacketDropsByDevice`, `IPsecErrors`, `NetpolDenied`,
5400-
`LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`.
5401-
More information on alerts: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
5401+
`LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressHTTPLatencyTrend`.
5402+
More information on alerts: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
54025403
items:
54035404
type: string
54045405
type: array
54055406
healthRules:
54065407
description: |-
54075408
`healthRules` is a list of health rules to be created for Prometheus, organized by templates and variants.
54085409
Each health rule can be configured to generate either alerts or recording rules based on the mode field.
5409-
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
5410+
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
54105411
items:
54115412
properties:
54125413
mode:
@@ -5425,9 +5426,9 @@ spec:
54255426
description: |-
54265427
Health rule template name.
54275428
Possible values are: `PacketDropsByKernel`, `PacketDropsByDevice`, `IPsecErrors`, `NetpolDenied`,
5428-
`LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressLatencyTrend`.
5429+
`LatencyHighTrend`, `DNSErrors`, `DNSNxDomain`, `ExternalEgressHighTrend`, `ExternalIngressHighTrend`, `Ingress5xxErrors`, `IngressHTTPLatencyTrend`.
54295430
Note: `NetObservNoFlows` and `NetObservLokiError` are alert-only and cannot be used as health rules.
5430-
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/Alerts.md
5431+
More information on health rules: https://github.com/netobserv/network-observability-operator/blob/main/docs/HealthRules.md
54315432
enum:
54325433
- PacketDropsByKernel
54335434
- PacketDropsByDevice
@@ -5439,7 +5440,7 @@ spec:
54395440
- ExternalEgressHighTrend
54405441
- ExternalIngressHighTrend
54415442
- Ingress5xxErrors
5442-
- IngressLatencyTrend
5443+
- IngressHTTPLatencyTrend
54435444
type: string
54445445
variants:
54455446
description: A list of variants for this template

0 commit comments

Comments
 (0)