Compare commits
6 Commits
bb65de3b99
...
a99cb3d2cc
| Author | SHA1 | Date | |
|---|---|---|---|
| a99cb3d2cc | |||
| df0083e334 | |||
| a5ec3ca6cb | |||
| b985818f5a | |||
| b441ea4832 | |||
| 5b0e0e07a6 |
@@ -32,7 +32,7 @@ Table Report:
|
|||||||
|
|
||||||
#### Warning
|
#### Warning
|
||||||
|
|
||||||
Please note that containers will use ports from 13241 to 13245 and 8080, so there is must be no listeners on this ports range.
|
Please note that containers will use ports from 13240 to 13248, so there is must be no listeners on this ports range.
|
||||||
|
|
||||||
#### Configure
|
#### Configure
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ docker compose up -d --build
|
|||||||
|
|
||||||
#### Structure
|
#### Structure
|
||||||
|
|
||||||
- **backend**: [127.0.0.1:8080](http://127.0.0.1:8080) -> `8080`
|
- **backend**: [127.0.0.1:13240](http://127.0.0.1:13240) -> `8080`
|
||||||
- Depends on: `postgres`, `redis`, `minio`, `backend-initdb`
|
- Depends on: `postgres`, `redis`, `minio`, `backend-initdb`
|
||||||
- **backend-initdb**
|
- **backend-initdb**
|
||||||
- Depends on: `postgres`, `redis`, `minio`
|
- Depends on: `postgres`, `redis`, `minio`
|
||||||
@@ -139,7 +139,7 @@ You may say: "For what we need a lot of complex technologies for now". I have an
|
|||||||
|
|
||||||
### Restful API
|
### Restful API
|
||||||
|
|
||||||
API Base endpoint when deployed with default docker compose: [127.0.0.1:8080](http://127.0.0.1:8080), also see [docs](#openapi-docs).
|
API Base endpoint when deployed with default docker compose: [127.0.0.1:13240](http://127.0.0.1:13240), also see [docs](#openapi-docs).
|
||||||
|
|
||||||
### Admin panel
|
### Admin panel
|
||||||
|
|
||||||
@@ -234,9 +234,9 @@ Moderation implemented via report system. Client goes to `/report` ([see OpenAPI
|
|||||||
Also admin user (whose credentials specified lower) can add new staff members and even create a specified group for them (this is built-in django capabilities).
|
Also admin user (whose credentials specified lower) can add new staff members and even create a specified group for them (this is built-in django capabilities).
|
||||||
Report has four states: Sent, Under review, Took action and Skipped. Admin panel has filtration by states and by flagged by llm status.
|
Report has four states: Sent, Under review, Took action and Skipped. Admin panel has filtration by states and by flagged by llm status.
|
||||||
|
|
||||||
Admin panel when deployed with docker compose (by default): [localhost:8080/admin/](http://localhost:8080/admin/)
|
Admin panel when deployed with docker compose (by default): [localhost:13240/admin/](http://localhost:13240/admin/)
|
||||||
|
|
||||||
Reports list when deployed with docker compose (requires authentication): [localhost:8080/admin/campaign/campaignreport/](http://localhost:8080/admin/campaign/campaignreport/)
|
Reports list when deployed with docker compose (requires authentication): [localhost:13240/admin/campaign/campaignreport/](http://localhost:13240/admin/campaign/campaignreport/)
|
||||||
|
|
||||||
Default username: `admin`
|
Default username: `admin`
|
||||||
|
|
||||||
@@ -276,11 +276,11 @@ Demonstration:
|
|||||||
|
|
||||||
### OpenAPI docs
|
### OpenAPI docs
|
||||||
|
|
||||||
When deployed with default docker compose: [localhost:8080/docs](http://localhost:8080/docs)
|
When deployed with default docker compose: [localhost:13240/docs](http://localhost:13240/docs)
|
||||||
|
|
||||||
### Healthcheck endpoint
|
### Healthcheck endpoint
|
||||||
|
|
||||||
When deployed with default docker compose: [localhost:8080/health](http://localhost:8080/health)
|
When deployed with default docker compose: [localhost:13240/health](http://localhost:13240/health)
|
||||||
|
|
||||||
Lets developers easily understand and identify problem and users check services health.
|
Lets developers easily understand and identify problem and users check services health.
|
||||||
|
|
||||||
|
|||||||
+48
-18
@@ -5,6 +5,9 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: ./services/backend
|
context: ./services/backend
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
tags:
|
||||||
|
- adnova-backend:latest
|
||||||
|
pull: true
|
||||||
depends_on:
|
depends_on:
|
||||||
backend-initdb:
|
backend-initdb:
|
||||||
restart: false
|
restart: false
|
||||||
@@ -18,10 +21,6 @@ services:
|
|||||||
restart: false
|
restart: false
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
required: true
|
required: true
|
||||||
minio:
|
|
||||||
restart: false
|
|
||||||
condition: service_healthy
|
|
||||||
required: true
|
|
||||||
env_file:
|
env_file:
|
||||||
- path: ./infrastructure/backend/.env.template
|
- path: ./infrastructure/backend/.env.template
|
||||||
required: true
|
required: true
|
||||||
@@ -30,16 +29,20 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- name: web
|
- name: web
|
||||||
target: 8080
|
target: 8080
|
||||||
published: 8080
|
published: 13240
|
||||||
host_ip: 127.0.0.1
|
host_ip: 127.0.0.1
|
||||||
protocol: tcp
|
protocol: tcp
|
||||||
app_protocol: http
|
app_protocol: http
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
shm_size: 4mb
|
||||||
|
|
||||||
backend-initdb:
|
backend-initdb:
|
||||||
build:
|
build:
|
||||||
context: ./services/backend
|
context: ./services/backend
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
tags:
|
||||||
|
- adnova-backend:latest
|
||||||
|
pull: true
|
||||||
command: ./scripts/initdb
|
command: ./scripts/initdb
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
@@ -50,27 +53,27 @@ services:
|
|||||||
restart: false
|
restart: false
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
required: true
|
required: true
|
||||||
minio:
|
|
||||||
restart: false
|
|
||||||
condition: service_healthy
|
|
||||||
required: true
|
|
||||||
env_file:
|
env_file:
|
||||||
- path: ./infrastructure/backend/.env.template
|
- path: ./infrastructure/backend/.env.template
|
||||||
required: true
|
required: true
|
||||||
- path: ./infrastructure/backend/.env
|
- path: ./infrastructure/backend/.env
|
||||||
required: false
|
required: false
|
||||||
|
shm_size: 4mb
|
||||||
|
|
||||||
backend-staticfiles:
|
backend-staticfiles:
|
||||||
build:
|
build:
|
||||||
context: ./services/backend
|
context: ./services/backend
|
||||||
dockerfile: Dockerfile.staticfiles
|
dockerfile: Dockerfile.staticfiles
|
||||||
|
tags:
|
||||||
|
- adnova-backend-staticfiles:latest
|
||||||
|
pull: true
|
||||||
env_file:
|
env_file:
|
||||||
- path: ./infrastructure/backend/.env.template
|
- path: ./infrastructure/backend/.env.template
|
||||||
required: true
|
required: true
|
||||||
- path: ./infrastructure/backend/.env
|
- path: ./infrastructure/backend/.env
|
||||||
required: false
|
required: false
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "service", "nginx", "status", "||", " exit 1"]
|
test: ["CMD-SHELL", "nginx", "-t", "||", "exit 1"]
|
||||||
interval: 1m30s
|
interval: 1m30s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
start_period: 5s
|
start_period: 5s
|
||||||
@@ -84,11 +87,15 @@ services:
|
|||||||
protocol: tcp
|
protocol: tcp
|
||||||
app_protocol: http
|
app_protocol: http
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
shm_size: 4mb
|
||||||
|
|
||||||
backend-celery-worker:
|
backend-celery-worker:
|
||||||
build:
|
build:
|
||||||
context: ./services/backend
|
context: ./services/backend
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
tags:
|
||||||
|
- adnova-backend:latest
|
||||||
|
pull: true
|
||||||
command: celery -A config worker -l INFO
|
command: celery -A config worker -l INFO
|
||||||
depends_on:
|
depends_on:
|
||||||
redis:
|
redis:
|
||||||
@@ -108,6 +115,7 @@ services:
|
|||||||
start_period: 10s
|
start_period: 10s
|
||||||
start_interval: 2s
|
start_interval: 2s
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
shm_size: 4mb
|
||||||
|
|
||||||
celery-exporter:
|
celery-exporter:
|
||||||
image: docker.io/danihodovic/celery-exporter:0.12.2
|
image: docker.io/danihodovic/celery-exporter:0.12.2
|
||||||
@@ -122,7 +130,10 @@ services:
|
|||||||
required: true
|
required: true
|
||||||
- path: ./infrastructure/celery-exporter/.env
|
- path: ./infrastructure/celery-exporter/.env
|
||||||
required: false
|
required: false
|
||||||
|
profiles:
|
||||||
|
- observability
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
shm_size: 4mb
|
||||||
|
|
||||||
telegram_bot:
|
telegram_bot:
|
||||||
build:
|
build:
|
||||||
@@ -130,6 +141,7 @@ services:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
tags:
|
tags:
|
||||||
- adnova-telegram_bot:latest
|
- adnova-telegram_bot:latest
|
||||||
|
pull: true
|
||||||
depends_on:
|
depends_on:
|
||||||
backend:
|
backend:
|
||||||
restart: false
|
restart: false
|
||||||
@@ -148,7 +160,10 @@ services:
|
|||||||
required: true
|
required: true
|
||||||
- path: ./infrastructure/telegram_bot/.env
|
- path: ./infrastructure/telegram_bot/.env
|
||||||
required: false
|
required: false
|
||||||
|
profiles:
|
||||||
|
- telegram_bot
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
shm_size: 4mb
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: docker.io/redis:7-alpine3.21
|
image: docker.io/redis:7-alpine3.21
|
||||||
@@ -187,6 +202,8 @@ services:
|
|||||||
required: true
|
required: true
|
||||||
- path: ./infrastructure/redis-exporter/.env
|
- path: ./infrastructure/redis-exporter/.env
|
||||||
required: false
|
required: false
|
||||||
|
profiles:
|
||||||
|
- observability
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
shm_size: 4mb
|
shm_size: 4mb
|
||||||
|
|
||||||
@@ -201,7 +218,7 @@ services:
|
|||||||
- path: ./infrastructure/postgres/.env
|
- path: ./infrastructure/postgres/.env
|
||||||
required: false
|
required: false
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "pg_isready"]
|
test: ["CMD", "pg_isready", "-U", "postgres"]
|
||||||
interval: 1m30s
|
interval: 1m30s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
start_period: 5s
|
start_period: 5s
|
||||||
@@ -230,6 +247,8 @@ services:
|
|||||||
required: true
|
required: true
|
||||||
- path: ./infrastructure/postgres-exporter/.env
|
- path: ./infrastructure/postgres-exporter/.env
|
||||||
required: false
|
required: false
|
||||||
|
profiles:
|
||||||
|
- observability
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
shm_size: 4mb
|
shm_size: 4mb
|
||||||
|
|
||||||
@@ -262,6 +281,8 @@ services:
|
|||||||
host_ip: 127.0.0.1
|
host_ip: 127.0.0.1
|
||||||
protocol: tcp
|
protocol: tcp
|
||||||
app_protocol: http
|
app_protocol: http
|
||||||
|
profiles:
|
||||||
|
- observability
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
secrets:
|
secrets:
|
||||||
- source: pgadmin_password
|
- source: pgadmin_password
|
||||||
@@ -274,10 +295,10 @@ services:
|
|||||||
|
|
||||||
grafana:
|
grafana:
|
||||||
image: docker.io/grafana/grafana-oss:12.0.2
|
image: docker.io/grafana/grafana-oss:12.0.2
|
||||||
|
entrypoint: ["/etc/grafana/scripts/entrypoint.sh"]
|
||||||
configs:
|
configs:
|
||||||
- source: grafana_config
|
- source: grafana_config
|
||||||
target: /usr/share/grafana/conf/defaults.ini
|
target: /usr/share/grafana/conf/defaults.ini
|
||||||
entrypoint: ["/etc/grafana/scripts/entrypoint.sh"]
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "wget", "-O", "-", "http://localhost:3000/api/health"]
|
test: ["CMD", "wget", "-O", "-", "http://localhost:3000/api/health"]
|
||||||
interval: 1m30s
|
interval: 1m30s
|
||||||
@@ -292,6 +313,8 @@ services:
|
|||||||
host_ip: 127.0.0.1
|
host_ip: 127.0.0.1
|
||||||
protocol: tcp
|
protocol: tcp
|
||||||
app_protocol: http
|
app_protocol: http
|
||||||
|
profiles:
|
||||||
|
- observability
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
shm_size: 4mb
|
shm_size: 4mb
|
||||||
volumes:
|
volumes:
|
||||||
@@ -325,6 +348,8 @@ services:
|
|||||||
host_ip: 127.0.0.1
|
host_ip: 127.0.0.1
|
||||||
protocol: tcp
|
protocol: tcp
|
||||||
app_protocol: http
|
app_protocol: http
|
||||||
|
profiles:
|
||||||
|
- observability
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
shm_size: 4mb
|
shm_size: 4mb
|
||||||
volumes:
|
volumes:
|
||||||
@@ -360,7 +385,10 @@ services:
|
|||||||
host_ip: 127.0.0.1
|
host_ip: 127.0.0.1
|
||||||
protocol: tcp
|
protocol: tcp
|
||||||
app_protocol: http
|
app_protocol: http
|
||||||
|
profiles:
|
||||||
|
- minio
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
shm_size: 4mb
|
||||||
volumes:
|
volumes:
|
||||||
- type: volume
|
- type: volume
|
||||||
source: minio_data
|
source: minio_data
|
||||||
@@ -382,18 +410,17 @@ services:
|
|||||||
host_ip: 127.0.0.1
|
host_ip: 127.0.0.1
|
||||||
protocol: tcp
|
protocol: tcp
|
||||||
app_protocol: http
|
app_protocol: http
|
||||||
- name: api
|
profiles:
|
||||||
target: 9411
|
- observability
|
||||||
published: 13247
|
|
||||||
host_ip: 127.0.0.1
|
|
||||||
protocol: tcp
|
|
||||||
app_protocol: http
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
shm_size: 4mb
|
||||||
|
|
||||||
loadtest:
|
loadtest:
|
||||||
build:
|
build:
|
||||||
context: ./services/loadtest
|
context: ./services/loadtest
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
tags:
|
||||||
|
- adnova-loadtest:latest
|
||||||
depends_on:
|
depends_on:
|
||||||
backend:
|
backend:
|
||||||
restart: false
|
restart: false
|
||||||
@@ -411,7 +438,10 @@ services:
|
|||||||
host_ip: 127.0.0.1
|
host_ip: 127.0.0.1
|
||||||
protocol: tcp
|
protocol: tcp
|
||||||
app_protocol: http
|
app_protocol: http
|
||||||
|
profiles:
|
||||||
|
- loadtest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
shm_size: 4mb
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
redis_data:
|
redis_data:
|
||||||
|
|||||||
@@ -15,11 +15,11 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"description": "Get daily and overall stats for your advertiser organization and your campaigns.",
|
"description": "Get daily and overall stats for advertiser organization and campaigns.",
|
||||||
"editable": true,
|
"editable": true,
|
||||||
"fiscalYearStartMonth": 0,
|
"fiscalYearStartMonth": 0,
|
||||||
"graphTooltip": 0,
|
"graphTooltip": 0,
|
||||||
"id": 1,
|
"id": 9,
|
||||||
"links": [],
|
"links": [],
|
||||||
"liveNow": true,
|
"liveNow": true,
|
||||||
"panels": [
|
"panels": [
|
||||||
@@ -62,8 +62,7 @@
|
|||||||
"mode": "percentage",
|
"mode": "percentage",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "green",
|
"color": "green"
|
||||||
"value": null
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -88,7 +87,7 @@
|
|||||||
"frameIndex": 1,
|
"frameIndex": 1,
|
||||||
"showHeader": true
|
"showHeader": true
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -139,7 +138,7 @@
|
|||||||
"source": "url",
|
"source": "url",
|
||||||
"summarizeAlias": "",
|
"summarizeAlias": "",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/advertisers/$advertiser_id",
|
"url": "/stats/advertisers/$advertiser_id",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
@@ -229,8 +228,7 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "green",
|
"color": "green"
|
||||||
"value": null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "red",
|
"color": "red",
|
||||||
@@ -265,7 +263,7 @@
|
|||||||
},
|
},
|
||||||
"xField": "Date"
|
"xField": "Date"
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -296,7 +294,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/advertisers/$advertiser_id/campaigns/daily",
|
"url": "/stats/advertisers/$advertiser_id/campaigns/daily",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -353,7 +351,7 @@
|
|||||||
"sort": "none"
|
"sort": "none"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -380,7 +378,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/advertisers/$advertiser_id",
|
"url": "/stats/advertisers/$advertiser_id",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -442,8 +440,7 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "green",
|
"color": "green"
|
||||||
"value": null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "red",
|
"color": "red",
|
||||||
@@ -478,7 +475,7 @@
|
|||||||
},
|
},
|
||||||
"xField": "Date"
|
"xField": "Date"
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -515,7 +512,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/advertisers/$advertiser_id/campaigns/daily",
|
"url": "/stats/advertisers/$advertiser_id/campaigns/daily",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -578,8 +575,7 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "green",
|
"color": "green"
|
||||||
"value": null
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -610,7 +606,7 @@
|
|||||||
},
|
},
|
||||||
"xField": "Date"
|
"xField": "Date"
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -637,7 +633,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/advertisers/$advertiser_id/campaigns/daily",
|
"url": "/stats/advertisers/$advertiser_id/campaigns/daily",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -649,7 +645,7 @@
|
|||||||
"type": "trend"
|
"type": "trend"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"collapsed": true,
|
"collapsed": false,
|
||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 1,
|
"h": 1,
|
||||||
"w": 24,
|
"w": 24,
|
||||||
@@ -657,7 +653,11 @@
|
|||||||
"y": 33
|
"y": 33
|
||||||
},
|
},
|
||||||
"id": 9,
|
"id": 9,
|
||||||
"panels": [
|
"panels": [],
|
||||||
|
"repeat": "campaign_id",
|
||||||
|
"title": "Campaign: $campaign_id",
|
||||||
|
"type": "row"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "yesoreyeram-infinity-datasource",
|
"type": "yesoreyeram-infinity-datasource",
|
||||||
@@ -708,7 +708,7 @@
|
|||||||
"frameIndex": 1,
|
"frameIndex": 1,
|
||||||
"showHeader": true
|
"showHeader": true
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -759,7 +759,7 @@
|
|||||||
"source": "url",
|
"source": "url",
|
||||||
"summarizeAlias": "",
|
"summarizeAlias": "",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/campaigns/$campaign_id",
|
"url": "/stats/campaigns/$campaign_id",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
@@ -884,7 +884,7 @@
|
|||||||
},
|
},
|
||||||
"xField": "Date"
|
"xField": "Date"
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -915,7 +915,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/campaigns/$campaign_id/daily",
|
"url": "/stats/campaigns/$campaign_id/daily",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -972,7 +972,7 @@
|
|||||||
"sort": "none"
|
"sort": "none"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -999,7 +999,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/campaigns/$campaign_id",
|
"url": "/stats/campaigns/$campaign_id",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -1096,7 +1096,7 @@
|
|||||||
},
|
},
|
||||||
"xField": "Date"
|
"xField": "Date"
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -1133,7 +1133,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/campaigns/$campaign_id/daily",
|
"url": "/stats/campaigns/$campaign_id/daily",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -1227,7 +1227,7 @@
|
|||||||
},
|
},
|
||||||
"xField": "Date"
|
"xField": "Date"
|
||||||
},
|
},
|
||||||
"pluginVersion": "11.5.0",
|
"pluginVersion": "12.0.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -1254,7 +1254,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/stats/campaigns/$campaign_id/daily",
|
"url": "/stats/campaigns/$campaign_id/daily",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -1266,14 +1266,9 @@
|
|||||||
"type": "trend"
|
"type": "trend"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"repeat": "campaign_id",
|
|
||||||
"title": "Campaign: $campaign_id",
|
|
||||||
"type": "row"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"preload": false,
|
"preload": false,
|
||||||
"refresh": "",
|
"refresh": "5s",
|
||||||
"schemaVersion": 40,
|
"schemaVersion": 41,
|
||||||
"tags": ["adnova"],
|
"tags": ["adnova"],
|
||||||
"templating": {
|
"templating": {
|
||||||
"list": [
|
"list": [
|
||||||
@@ -1282,7 +1277,7 @@
|
|||||||
"text": "",
|
"text": "",
|
||||||
"value": ""
|
"value": ""
|
||||||
},
|
},
|
||||||
"description": "Enter your advertiser UUID",
|
"description": "Enter advertiser UUID",
|
||||||
"label": "Advertiser UUID",
|
"label": "Advertiser UUID",
|
||||||
"name": "advertiser_id",
|
"name": "advertiser_id",
|
||||||
"options": [
|
"options": [
|
||||||
@@ -1329,7 +1324,7 @@
|
|||||||
"root_selector": "",
|
"root_selector": "",
|
||||||
"source": "url",
|
"source": "url",
|
||||||
"type": "json",
|
"type": "json",
|
||||||
"url": "http://backend:8080/advertisers/$advertiser_id/campaigns",
|
"url": "/advertisers/$advertiser_id/campaigns",
|
||||||
"url_options": {
|
"url_options": {
|
||||||
"data": "",
|
"data": "",
|
||||||
"method": "GET"
|
"method": "GET"
|
||||||
@@ -1349,11 +1344,12 @@
|
|||||||
"to": "now"
|
"to": "now"
|
||||||
},
|
},
|
||||||
"timepicker": {
|
"timepicker": {
|
||||||
|
"hidden": true,
|
||||||
"refresh_intervals": ["5s"]
|
"refresh_intervals": ["5s"]
|
||||||
},
|
},
|
||||||
"timezone": "utc",
|
"timezone": "browser",
|
||||||
"title": "Statistics",
|
"title": "Advertiser Statistics",
|
||||||
"uid": "adnova-statisticss",
|
"uid": "adnova-advertiser-statistics",
|
||||||
"version": 16,
|
"version": 2,
|
||||||
"weekStart": "monday"
|
"weekStart": "monday"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
apiVersion: 1
|
apiVersion: 1
|
||||||
|
|
||||||
providers:
|
providers:
|
||||||
- name: "celery"
|
- name: "default"
|
||||||
orgId: 1
|
orgId: 1
|
||||||
folder: ""
|
folder: ""
|
||||||
type: file
|
type: file
|
||||||
|
disableDeletion: false
|
||||||
updateIntervalSeconds: 10
|
updateIntervalSeconds: 10
|
||||||
|
allowUiUpdates: false
|
||||||
options:
|
options:
|
||||||
path: /etc/grafana/provisioning/dashboards
|
path: /etc/grafana/provisioning/dashboards
|
||||||
foldersFromFilesStructure: true
|
foldersFromFilesStructure: true
|
||||||
|
|||||||
@@ -1,10 +1,29 @@
|
|||||||
apiVersion: 1
|
apiVersion: 1
|
||||||
|
|
||||||
datasources:
|
datasources:
|
||||||
- name: Infinity
|
- name: Backend | Infinity
|
||||||
type: yesoreyeram-infinity-datasource
|
type: yesoreyeram-infinity-datasource
|
||||||
access: proxy
|
access: proxy
|
||||||
orgId: 1
|
orgId: 1
|
||||||
uid: infinity
|
uid: infinity
|
||||||
|
url: http://backend:8080
|
||||||
|
basicAuth: false
|
||||||
|
basicAuthUser: ""
|
||||||
|
withCredentials: false
|
||||||
isDefault: false
|
isDefault: false
|
||||||
editable: false
|
editable: false
|
||||||
|
- name: Prometheus
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
uid: prometheus
|
||||||
|
url: http://prometheus:9090
|
||||||
|
basicAuth: false
|
||||||
|
basicAuthUser: ""
|
||||||
|
withCredentials: false
|
||||||
|
isDefault: true
|
||||||
|
editable: false
|
||||||
|
jsonData:
|
||||||
|
httpMethod: POST
|
||||||
|
queryTimeout: 10s
|
||||||
|
timeInterval": 10s
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# Below all environment variables and default values
|
# Below all environment variables and default values
|
||||||
|
|
||||||
BACKEND_BASE_URL=http://127.0.0.1:8080
|
BACKEND_BASE_URL=http://127.0.0.1:13240
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ Ensure you have the following installed on your system:
|
|||||||
|
|
||||||
## Warning
|
## Warning
|
||||||
|
|
||||||
Please note that containers will use ports from 13241 to 13246 and 8080, so there is must be no listeners on this ports range.
|
Please note that containers will use ports from 13240 to 13248, so there is must be no listeners on this ports range.
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from dotenv import load_dotenv
|
|||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
BACKEND_BASE_URL = os.getenv("BACKEND_BASE_URL", "http://127.0.0.1:8080")
|
BACKEND_BASE_URL = os.getenv("BACKEND_BASE_URL", "http://127.0.0.1:13240")
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session", autouse=True)
|
@pytest.fixture(scope="session", autouse=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user