https://github.com/dialectlabs/monitoring-service
https://github.com/dialectlabs/monitoring-service
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dialectlabs/monitoring-service
- Owner: dialectlabs
- License: apache-2.0
- Created: 2022-02-02T19:35:43.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-28T01:29:08.000Z (about 4 years ago)
- Last Synced: 2025-04-11T05:08:47.307Z (about 1 year ago)
- Language: TypeScript
- Size: 184 KB
- Stars: 6
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Monitoring service
A reference implementation of a service running `@dialectlabs/monitor`.
See https://github.com/dialectlabs/monitor for details on the notifications module.
## Development
### Prerequisites
- Git
- Yarn (<2)
- Nodejs (>=16.10.0 <17)
### Getting started with monitor development in this repo
#### Install dependencies
**npm:**
```shell
npm install
```
**yarn:**
```shell
yarn
```
#### Run a solana validator node with dialect program
Please follow the instructions in https://github.com/dialectlabs/protocol#local-development
### Running locally
#### Step 1. Generate a new keypair for monitoring monitoring service and fund it
```bash
export your_path=~/projects/dialect
solana-keygen new --outfile ${your_path}/monitoring-service-dev-local-key.json
solana-keygen pubkey ${your_path}/monitoring-service-dev-local-key.json > ${your_path}/monitoring-service-dev-local-key.pub
solana -k ${your_path}/monitoring-service-dev-local-key.json airdrop 5
```
#### Step 2. Start server
```shell
export your_path=~/projects/dialect
PRIVATE_KEY=$(cat ${your_path}/monitoring-service-dev-local-key.json) yarn start:dev
```
#### Step 3. Start client
```shell
export your_path=~/projects/dialect
MONITORING_SERVICE_PUBLIC_KEY=$(cat ${your_path}/monitoring-service-dev-local-key.pub) ts-node test/dialect-clients.ts
```
#### Step 4. Look at client logs for notifications
When both client and server are started, server will send notifications to clients
### Containerization
#### Build image (macOS)
```shell
brew install jq
./docker-build.sh
```
#### Run container locally
```shell
export your_path=~/projects/dialect
docker run --name dialectlabs_monitoring-service -e PRIVATE_KEY=$(cat ${your_path}/monitoring-service-dev-local-key.json) dialectlab/monitoring-service:latest
```
#### Publish image
```shell
brew install jq
docker login
./docker-publish.sh
```