mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-24 14:28:09 +08:00
add mongo and elastic health check
This commit is contained in:
parent
23be453624
commit
b626a59fbf
@ -135,6 +135,11 @@ Run this app in docker using the [docker-compose.yaml](./deployments/docker-comp
|
|||||||
```bash
|
```bash
|
||||||
docker-compose -f ./deployments/docker-compose/docker-compose.yaml up -d
|
docker-compose -f ./deployments/docker-compose/docker-compose.yaml up -d
|
||||||
```
|
```
|
||||||
|
Also we have a seprate docker file for up and running [infrastructure](./deployments/docker-compose/infrastracture.yaml) independently.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose -f ./deployments/docker-compose/infrastracture.yaml up -d
|
||||||
|
```
|
||||||
|
|
||||||
### Documentation Apis
|
### Documentation Apis
|
||||||
|
|
||||||
|
|||||||
141
deployments/docker-compose/infrastracture.yaml
Normal file
141
deployments/docker-compose/infrastracture.yaml
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
version: "3.3"
|
||||||
|
services:
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# Rabbitmq
|
||||||
|
#######################################################
|
||||||
|
rabbitmq:
|
||||||
|
image: rabbitmq:3-management
|
||||||
|
container_name: rabbitmq
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 5672:5672
|
||||||
|
- 15672:15672
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# SqlServer
|
||||||
|
#######################################################
|
||||||
|
db:
|
||||||
|
container_name: sqldb
|
||||||
|
image: mcr.microsoft.com/mssql/server:2017-latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "1433:1433"
|
||||||
|
environment:
|
||||||
|
SA_PASSWORD: "@Aa123456"
|
||||||
|
ACCEPT_EULA: "Y"
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# Jaeger
|
||||||
|
#######################################################
|
||||||
|
jaeger:
|
||||||
|
image: jaegertracing/all-in-one
|
||||||
|
container_name: jaeger
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
ports:
|
||||||
|
- 5775:5775/udp
|
||||||
|
- 5778:5778
|
||||||
|
- 6831:6831/udp
|
||||||
|
- 6832:6832/udp
|
||||||
|
- 9411:9411
|
||||||
|
- 14268:14268
|
||||||
|
- 16686:16686
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# EventStoreDB
|
||||||
|
#######################################################
|
||||||
|
eventstore.db:
|
||||||
|
image: eventstore/eventstore:21.2.0-buster-slim
|
||||||
|
restart: on-failure
|
||||||
|
environment:
|
||||||
|
- EVENTSTORE_CLUSTER_SIZE=1
|
||||||
|
- EVENTSTORE_RUN_PROJECTIONS=All
|
||||||
|
- EVENTSTORE_START_STANDARD_PROJECTIONS=true
|
||||||
|
- EVENTSTORE_EXT_TCP_PORT=1010
|
||||||
|
- EVENTSTORE_EXT_HTTP_PORT=2113
|
||||||
|
- EVENTSTORE_INSECURE=true
|
||||||
|
- EVENTSTORE_ENABLE_EXTERNAL_TCP=true
|
||||||
|
- EVENTSTORE_ENABLE_ATOM_PUB_OVER_HTTP=true
|
||||||
|
ports:
|
||||||
|
- '1010:1113'
|
||||||
|
- '2113:2113'
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# Mongo
|
||||||
|
#######################################################
|
||||||
|
mongo:
|
||||||
|
image: mongo
|
||||||
|
container_name: mongo
|
||||||
|
restart: unless-stopped
|
||||||
|
# environment:
|
||||||
|
# - MONGO_INITDB_ROOT_USERNAME=root
|
||||||
|
# - MONGO_INITDB_ROOT_PASSWORD=secret
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
ports:
|
||||||
|
- 27017:27017
|
||||||
|
volumes:
|
||||||
|
- mongo:/data/db
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# Elastic Search
|
||||||
|
#######################################################
|
||||||
|
elasticsearch:
|
||||||
|
container_name: elasticsearch
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2
|
||||||
|
ports:
|
||||||
|
- 9200:9200
|
||||||
|
volumes:
|
||||||
|
- elasticsearch-data:/usr/share/elasticsearch/data
|
||||||
|
environment:
|
||||||
|
- xpack.monitoring.enabled=true
|
||||||
|
- xpack.watcher.enabled=false
|
||||||
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||||
|
- discovery.type=single-node
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# Kibana
|
||||||
|
#######################################################
|
||||||
|
kibana:
|
||||||
|
container_name: kibana
|
||||||
|
image: docker.elastic.co/kibana/kibana:7.9.2
|
||||||
|
ports:
|
||||||
|
- 5601:5601
|
||||||
|
depends_on:
|
||||||
|
- elasticsearch
|
||||||
|
environment:
|
||||||
|
- ELASTICSEARCH_URL=http://localhost:9200
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
networks:
|
||||||
|
booking:
|
||||||
|
name: booking
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
db-data:
|
||||||
|
external: false
|
||||||
|
mongo:
|
||||||
|
driver: local
|
||||||
|
elasticsearch-data:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,6 +1,9 @@
|
|||||||
using BuildingBlocks.EFCore;
|
using BuildingBlocks.EFCore;
|
||||||
|
using BuildingBlocks.Logging;
|
||||||
using BuildingBlocks.MassTransit;
|
using BuildingBlocks.MassTransit;
|
||||||
|
using BuildingBlocks.Mongo;
|
||||||
using BuildingBlocks.Web;
|
using BuildingBlocks.Web;
|
||||||
|
using DotNetCore.CAP.MongoDB;
|
||||||
using HealthChecks.UI.Client;
|
using HealthChecks.UI.Client;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
|
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
|
||||||
@ -14,18 +17,22 @@ public static class Extensions
|
|||||||
{
|
{
|
||||||
public static IServiceCollection AddCustomHealthCheck(this IServiceCollection services)
|
public static IServiceCollection AddCustomHealthCheck(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
|
var appOptions = services.GetOptions<AppOptions>("AppOptions");
|
||||||
var sqlOptions = services.GetOptions<SqlOptions>("ConnectionStrings");
|
var sqlOptions = services.GetOptions<SqlOptions>("ConnectionStrings");
|
||||||
var rabbitMqOptions = services.GetOptions<RabbitMqOptions>("RabbitMq");
|
var rabbitMqOptions = services.GetOptions<RabbitMqOptions>("RabbitMq");
|
||||||
|
var mongoOptions = services.GetOptions<MongoOptions>("MongoOptions");
|
||||||
|
var logOptions = services.GetOptions<LogOptions>("LogOptions");
|
||||||
|
|
||||||
services.AddHealthChecks()
|
services.AddHealthChecks()
|
||||||
.AddSqlServer(sqlOptions.DefaultConnection)
|
.AddSqlServer(sqlOptions.DefaultConnection)
|
||||||
.AddRabbitMQ(rabbitConnectionString:
|
.AddMongoDb(mongoOptions.ConnectionString)
|
||||||
$"amqp://{rabbitMqOptions.UserName}:{rabbitMqOptions.Password}@{rabbitMqOptions.HostName}");
|
.AddRabbitMQ(rabbitConnectionString: $"amqp://{rabbitMqOptions.UserName}:{rabbitMqOptions.Password}@{rabbitMqOptions.HostName}")
|
||||||
|
.AddElasticsearch(logOptions.ElasticUri);
|
||||||
|
|
||||||
services.AddHealthChecksUI(setup =>
|
services.AddHealthChecksUI(setup =>
|
||||||
{
|
{
|
||||||
setup.SetEvaluationTimeInSeconds(60); // time in seconds between check
|
setup.SetEvaluationTimeInSeconds(60); // time in seconds between check
|
||||||
setup.AddHealthCheckEndpoint("Basic Health Check", "/healthz");
|
setup.AddHealthCheckEndpoint($"Basic Health Check - {appOptions.Name}", "/healthz");
|
||||||
}).AddInMemoryStorage();
|
}).AddInMemoryStorage();
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user