Add MeterRegistry monitoring
- update and cleanup in README.md - extract webclient call from registerDevice and add metrics in DeviceRegistryService - add WebClientCalls.kt - update kotlin logging dependency - add MeterRegistry dependency
This commit is contained in:
71
README.md
71
README.md
@@ -4,17 +4,24 @@ Classes and endpoints, to shape and to steer, Devices and sensors, their purpose
|
||||
|
||||
## Properties for deployment
|
||||
|
||||
| name | required | info |
|
||||
|-------------------------------|----------|-------------------------|
|
||||
| spring.profiles.active | * | Spring Boot environment |
|
||||
| server.port | * | HTTP port |
|
||||
| server.ssl.enabled | * | HTTP Enable SSL |
|
||||
| server.ssl.key-store | * | HTTP Keystore |
|
||||
| server.ssl.key-store-type | * | HTTP Cert Type |
|
||||
| server.ssl.key-store-password | ** | HTTP Cert Pass |
|
||||
| device-registry.url | * | Device Register URL |
|
||||
| name | required | info |
|
||||
|----------------------------------------------|:--------:|----------------------------------------------|
|
||||
| spring.profiles.active | ✓ | Spring Boot environment |
|
||||
| server.port | ✓ | HTTP port |
|
||||
| server.ssl.enabled | ✓ | HTTP Enable SSL |
|
||||
| server.ssl.key-store | ✓ | HTTP Keystore |
|
||||
| server.ssl.key-store-type | ✓ | HTTP Cert Type |
|
||||
| server.ssl.key-store-password | ✗ | HTTP Cert Pass |
|
||||
| device-registry.url | ✓ | Device Register URL |
|
||||
| management.influx.metrics.export.api-version | | InfluxDB API version |
|
||||
| management.influx.metrics.export.enabled | | Enable/Disable exporting metrics to InfluxDB |
|
||||
| management.influx.metrics.export.bucket | ✓ | InfluxDB bucket name |
|
||||
| management.influx.metrics.export.org | ✓ | InfluxDB organization |
|
||||
| management.influx.metrics.export.token | ✗ | InfluxDB token |
|
||||
| management.influx.metrics.export.uri | ✓ | InfluxDB URL |
|
||||
| management.metrics.tags.application | ✓ | Application instance tag for metrics |
|
||||
|
||||
Required: * can be stored as text, and ** need to be stored as secret.
|
||||
*Required: ✓ can be stored as text, and ✗ need to be stored as secret.*
|
||||
|
||||
## Releasing Service
|
||||
|
||||
@@ -22,39 +29,29 @@ Run `release.sh` script from `master` branch.
|
||||
|
||||
## Development Configuration
|
||||
|
||||
|
||||
### Developer Keystore
|
||||
|
||||
1. Open `hosts` file:
|
||||
* On Unix-like systems (Linux, macOS), this directory is typically `/etc/hosts`.
|
||||
* On Windows, this directory is typically `%SystemRoot%\System32\drivers\etc\hosts`.
|
||||
We use a keystore to enable HTTPS for our API. To set up your developer environment for local development, please refer to [generate keystore](https://github.com/swordsteel/hlaeja-development/blob/master/doc/keystore.md) documentation. When generating and exporting the certificate for local development, please store it in the `./cert/keystore.p12` folder at the project root.
|
||||
|
||||
2. Add the following lines to the `hosts` file:
|
||||
```text
|
||||
127.0.0.1 registryapi # Hlæja Registry API
|
||||
```
|
||||
### Global Settings
|
||||
|
||||
3. Generate Keystores
|
||||
```shell
|
||||
keytool -genkeypair -alias registry-api -keyalg RSA -keysize 2048 -validity 3650 -dname "CN=registryapi" -keypass password -keystore ./cert/keystore.p12 -storetype PKCS12 -storepass password
|
||||
```
|
||||
This services rely on a set of global settings to configure development environments. These settings, managed through Gradle properties or environment variables.
|
||||
|
||||
4. Export the public certificate
|
||||
```shell
|
||||
keytool -export -alias registry-api -keystore ./cert/keystore.p12 -storepass password -file ./cert/registry-api.cer -rfc
|
||||
```
|
||||
*Note: For more information on global properties, please refer to our [global settings](https://github.com/swordsteel/hlaeja-development/blob/master/doc/global_settings.md) documentation.*
|
||||
|
||||
### Global gradle properties
|
||||
#### Gradle Properties
|
||||
|
||||
To authenticate with Gradle to access repositories that require authentication, you can set your user and token in the `gradle.properties` file.
|
||||
```properties
|
||||
repository.user=your_user
|
||||
repository.token=your_token_value
|
||||
influxdb.token=your_token_value
|
||||
```
|
||||
|
||||
Here's how you can do it:
|
||||
#### Environment Variables
|
||||
|
||||
1. Open or create the `gradle.properties` file in your Gradle user home directory:
|
||||
- On Unix-like systems (Linux, macOS), this directory is typically `~/.gradle/`.
|
||||
- On Windows, this directory is typically `C:\Users\<YourUsername>\.gradle\`.
|
||||
2. Add the following lines to the `gradle.properties` file:
|
||||
```properties
|
||||
repository.user=your_user
|
||||
repository.token=your_token_value
|
||||
```
|
||||
or use environment variables `REPOSITORY_USER` and `REPOSITORY_TOKEN`
|
||||
```properties
|
||||
REPOSITORY_USER=your_user
|
||||
REPOSITORY_TOKEN=your_token_value
|
||||
INFLUXDB_TOKEN=your_token_value
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user