- Add a new template
- Display error when template added without name
- Display error when template added with invalid body
- Add a new destination
- Display error when destination added without name
- Add alert
- Display error when alert added without name under alerts
- Display error when alert added without stream under alerts
- Display error when user directly clicks save without any values under
alerts
- Delete destination
- Delete template
- Verify if add template displayed on alerts page if no template added
- Verify if add template displayed on destination page if no template
added
- Verify a success message displayed on destination creation
- Verify if Add destination button is displayed
- Verify if on cancel on delete confirmation the alert does not get
deleted
- Verify logs selected from dropdown and create alert
Logs -
Fixed logs breaking testcases
- Create a folder and then delete
- Display error when folder created with only spaces under name
- Should add a dashboard under folder and then delete dashboard and that
folder
- Create 2 folders and move dashboard from one folder to another. Then
delete dashboard and folders
- Click on cancel on folder creation UI
- Display error when creating function without mandatory fields
- Display error on entering invalid name under function and save
- Display error on entering invalid function and save
- Display error on entering adding function with same name
- Add a function and associate a stream with the same
- Display error add a function and associate a stream with the same
- Upload a enrichment table under functions and save
- Add a panel
- drag and drop an element
- Verify query generation on the when fields are added and removed from
axis
- Update the chart when field configurations are updated including
filters
- Update the value automatically when trying to save the chart after
switching from the auto to custom mode
- Clear the field after switch from custom to auto mode
- Generate chart with the custom query mode
- Display error when add new chartype with existing chart type value
- Delete all dashboards
- Add a new dashboard
- Add and delete the created dashboard
- Delete all dashboards
- Verify if save button enabled if dashboard name has only spaces added
- Simplify the API integration tests by removing steps not needed (Node,
k8s, building docker, etc).
- Testing the UI, linting, formatting, etc should be done in a separate
workflow file
- Simplify Rust cache workflow.
- By default it caches /target
- Removed Dockerfile and k8s deployment from CI.
- You can just run `OpenObserve` in the background
- Replace `ubicloud-standard-16` with `ubuntu-latest` which is *FREE*.
- Using 16 cores, 64GB of ram is an overkill for running tests.
- Don't run the CI if changes to `.md` files are detected.
Notes:
- Before caching building `OpenObserve` takes around 5-7 mins, after
cache it goes down to 1-2 mins.
This PR implements the first draft for the Real User Monitoring.
The endpoints at the moment are:
- `/rum/v1/{org_id}/rum`
- `/rum/v1/{org_id}/replay`
- `/rum/v1/{org_id}/logs`
For now the authentication is done using `oo-api-key` which is
being passed in the query-param using `browser-sdk`.
As of now, the data is being collected in the following three streams:
- `_rumdata` for rum data
- `_rumlog` for log data
- `_sessionreplay` for session-replay data
The data is being ingested using the multi-json implementation, with a
small change where some extra data is also ingested in the json from
the headers, query-params etc. using a middleware extractor and stores
the data in `HashMap<String, String>` and gets ingested in this
multi-json.
A file containing regexes for common user-agents is also committed which
is read during the initialization time which is used to parse incoming
user-agents and browser, os etc are inserted into the incoming row of
data.
Added the endpoints for `get`, `put`, `post` for rum-tokens.
- `/api/{org_id}/organizations/rumtoken`
#### maxmind integration
Integrated the maxmind-db data in the source. Currently the data
is injected via the middleware and the file gets uploaded every
24 hours.
The file pointer gets mutated and updated when there is a change
in the mmdb file. To efficiently do this, we also query the sha256
of our file and compare it using the .sha256 file available on the
public bucket.
## Design Spec:
- POST `/api/:org/ingest/metrics/_json`
```json
[
{
"__name__": "stream name",
"__type__": "counter / gauge / histogram / summary",
"label_name1": "label_value1",
"label_name2": "label_value2",
"_timestamp": 0, // unix timestamp in millisecond
"value": 0.0 // float64 value
}
]
```
## How to use this API:
- must use `__name__` set stream name.
- must use `__type__` set metrics type. and the type can't be updated
after first record
- `_timestamp` needs UNIX timestamp or empty will fill by current
timestamp
- `value` should be float64 or int64
## Example:
POST `/api/default/ingest/metrics/_json`
```json
[
{
"__name__": "cpu",
"__type__": "gauge",
"namespace": "ziox",
"container": "zo1",
"_timestamp": 1687326643584062,
"value": 10.1
},
{
"__name__": "cpu",
"__type__": "gauge",
"namespace": "ziox",
"container": "zo2",
"value": 0.1
}
]
```