Skip to content

Commit

Permalink
Merge branch 'cloud-bulldozer:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
vishnuchalla authored Aug 2, 2023
2 parents a865450 + c240027 commit f9cfb30
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 29 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

# What is Kube-burner

Kube-burner is a Kubernetes performance and scale test orchestration framework. It provides multi-faceted functionality, the most important of which are summarized below.
Kube-burner is a Kubernetes performance and scale test orchestration toolset. It provides multi-faceted functionality, the most important of which are summarized below.

- Create, delete and patch Kubernetes resources at scale.
- Prometheus metric collection and indexing.
Expand Down
6 changes: 3 additions & 3 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@

# What is Kube-burner

Kube-burner is a Kubernetes performance toolset. It provides multiple functionalities where the most hightliged can be summarized in:
Kube-burner is a Kubernetes performance and scale test orchestration toolset. It provides multi-faceted functionality, the most important of which are summarized below.

- Create, delete and patch Kubernetes at scale.
- Create, delete and patch Kubernetes resources at scale.
- Prometheus metric collection and indexing.
- Measurements.
- Alerting.

Kube-burner is a binary application written in golang that makes an intensive usage of the official k8s client library, [client-go](https://github.com/kubernetes/client-go).
Kube-burner is a binary application written in golang that makes extensive usage of the official k8s client library, [client-go](https://github.com/kubernetes/client-go).

![Demo](media/demo.gif)

Expand Down
52 changes: 27 additions & 25 deletions docs/observability/indexing.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,42 @@ Kube-burner can index the collected metrics metrics into a given indexer.

Configured in the `indexerConfig` object, they can be tweaked by the following parameters:

| Option | Description | Type | Default |
|----------------------|-----------------------|----------|---------|
| `enabled` | Enable indexing | Boolean | false |
| `type` | Type of indexer | String | "" |
| Option | Description | Type | Default |
| --------- | --------------- | ------- | ------- |
| `enabled` | Enable indexing | Boolean | false |
| `type` | Type of indexer | String | "" |

!!! Note
At the moment `elastic` and `local` are the only supported indexers
At the moment `elastic` and `local` are the only supported indexers

### Elastic
### Elastic/OpenSearch

This indexer send collected documents to Elasticsearch 7 instances.
This indexer send collected documents to Elasticsearch 7 instances or OpenSearch instances.

The `elastic` indexer can be configured by the parameters below:
The `elastic` or `opensearch` indexer can be configured by the parameters below:

| Option | Description | Type | Default |
|----------------------|---------------------------------------------------|-------------|---------|
| `esServers` | List of ES instances | List | "" |
| `defaultIndex` | Default index to send the prometheus metrics into | String | "" |
| `insecureSkipVerify` | TLS certificate verification | Boolean | false |
| Option | Description | Type | Default |
| -------------------- | ------------------------------------------------- | ------- | ------- |
| `esServers` | List of ES or Opensearch instances | List | "" |
| `defaultIndex` | Default index to send the prometheus metrics into | String | "" |
| `insecureSkipVerify` | TLS certificate verification | Boolean | false |

Since Opensearch is back compatible with Elasticsearch, and there are no version checks we are using. Kube-burner with OpenSearch indexing wouldn't raise any issues.

!!!Info
It's possible to index documents in an authenticated ES instance using the notation `http(s)://[username]:[password]@[address]:[port]` in the `esServers` parameter.
It's possible to index documents in an authenticated ES or OpenSearch instance using the notation `http(s)://[username]:[password]@[address]:[port]` in the `esServers` parameter.

### Local

This indexer writes collected metrics to local files.

The `local` indexer can be configured by the parameters below:

| Option | Description | Type | Default |
|----------------------|---------------------------------------------------|----------------|---------|
| `metricsDirectory` | Collected metric will be dumped here. | String | collected-metrics |
| `createTarball` | Create metrics tarball | Boolean | false |
| `tarballName` | Name of the metrics tarball | String | kube-burner-metrics.tgz |
| Option | Description | Type | Default |
| ------------------ | ------------------------------------- | ------- | ----------------------- |
| `metricsDirectory` | Collected metric will be dumped here. | String | collected-metrics |
| `createTarball` | Create metrics tarball | Boolean | false |
| `tarballName` | Name of the metrics tarball | String | kube-burner-metrics.tgz |

## Job Summary

Expand Down Expand Up @@ -109,15 +111,15 @@ It's possible to scrape from multiple prometheus endpoints and send the results
A valid file provided to the `--metrics-endpoint` would look like this.

```yaml
- endpoint: http://localhost:9090 # This is one of the Prometheus endpoints
token: <token> # Authentication token
profile: metrics.yaml # Metrics profile to use in this target
alertProfile: alerts.yaml # Alert profile, optional
- endpoint: http://localhost:9090 # This is one of the Prometheus endpoints
token: <token> # Authentication token
profile: metrics.yaml # Metrics profile to use in this target
alertProfile: alerts.yaml # Alert profile, optional
- endpoint: http://remotehost:9090 # Another Prometheus endpoint
token: <token>
profile: metrics.yaml
```
!!!note
The configuration provided by the `--metrics-endpoint` flag has precedence over the parameters specified in the config file.
The `profile` and `alertProfile` parameters are optional. If not provided they will be taken from the CLI flags.
The configuration provided by the `--metrics-endpoint` flag has precedence over the parameters specified in the config file.
The `profile` and `alertProfile` parameters are optional. If not provided they will be taken from the CLI flags.

0 comments on commit f9cfb30

Please sign in to comment.