15 Commits

Author SHA1 Message Date
4cb47e6d3b fix: adjust requires and templates 2023-10-26 15:56:10 +08:00
548817ea1b doc: update readme (#34) 2023-10-24 22:32:04 +08:00
0b893851ff doc: update readme (#33) 2023-08-09 00:00:22 +08:00
62e6b1c1ed fix: grafana error 9 (#32) 2023-08-07 17:16:25 +08:00
58804bbe50 fix: grafana error 8 (#31) 2023-08-07 17:11:46 +08:00
1818308508 fix: grafana error 7 (#30) 2023-08-07 16:31:25 +08:00
7866e6cbbf fix: grafana error 6 (#29) 2023-08-07 16:27:19 +08:00
a34e1c7d0b fix: grafana error 5 (#28) 2023-08-07 16:23:29 +08:00
b6659976fb fix: grafana error 4 (#27) 2023-08-07 16:15:22 +08:00
6c059ac19d fix: grafana error 3 (#26) 2023-08-07 16:05:46 +08:00
3641e7a1fa fix: grafana error 2 (#25) 2023-08-07 15:52:22 +08:00
ac50af774d fix: grafana errors (#24) 2023-08-07 15:44:28 +08:00
96d33944a4 fix: metris errors 2023-08-07 15:11:45 +08:00
0fd6949262 fix: update setup 2023-08-07 14:59:31 +08:00
a8d088f6a3 fix: grafana.json.mako sytanx error 2023-08-07 14:59:31 +08:00
10 changed files with 46 additions and 23 deletions

View File

@@ -4,6 +4,13 @@
A lightweight Python distributed microservice solution A lightweight Python distributed microservice solution
## Installation
```shell
python3 -m pip install namekoplus
```
## CLI Usage ## CLI Usage
### Checkout Command ### Checkout Command
@@ -29,5 +36,5 @@ namekoplus init --directory <dir_name> --type <template_type>
See Documents: See Documents:
- [English](https://murl.vip/TwML) - [English](https://legendary-sopapillas-e2626d.netlify.app/)
- [中文](https://murl.vip/B0O9) - [中文](https://doc.bearcatlog.com/)

View File

@@ -35,8 +35,7 @@
"dashLength": 10, "dashLength": 10,
"dashes": false, "dashes": false,
"datasource": { "datasource": {
"type": "statsd", "type": "statsd"
"uid": "5qrwjFCnk"
}, },
"fill": 1, "fill": 1,
"fillGradient": 0, "fillGradient": 0,
@@ -47,7 +46,7 @@
"y": 0 "y": 0
}, },
"hiddenSeries": false, "hiddenSeries": false,
"id": 5, "id": ${loop.index},
"legend": { "legend": {
"alignAsTable": true, "alignAsTable": true,
"avg": true, "avg": true,
@@ -92,7 +91,7 @@
"title": "${service_name} | ${grafana_dict['stat_name']}", "title": "${service_name} | ${grafana_dict['stat_name']}",
"tooltip": { "tooltip": {
"shared": true, "shared": true,
"sort": 0, "sort": ${loop.index},
"value_type": "individual" "value_type": "individual"
}, },
"type": "graph", "type": "graph",
@@ -116,7 +115,12 @@
"yaxis": { "yaxis": {
"align": false "align": false
} }
% if grafana_dict['is_last'] == 1:
} }
% else:
},
% endif
% endfor % endfor
], ],
"refresh": "3s", "refresh": "3s",

View File

@@ -109,7 +109,7 @@ def start_statsd_agent():
def start_statsd_exporter(): def start_statsd_exporter():
with status(f'Starting statsd exporter'): with status(f'Starting statsd exporter'):
statsd_mapping_file_path = os.path.join(os.getcwd(), 'statsd_mapping.yml') statsd_mapping_file_path = os.getcwd() + '/statsd_mapping.yml'
returned_string = docker.run(image='prom/statsd-exporter:latest', name='statsd-exporter', pull='missing', returned_string = docker.run(image='prom/statsd-exporter:latest', name='statsd-exporter', pull='missing',
detach=True, restart='always', tty=True, hostname='statsd-exporter', detach=True, restart='always', tty=True, hostname='statsd-exporter',
publish=[(9125, 9125, 'udp'), (9102, 9102)], interactive=True, publish=[(9125, 9125, 'udp'), (9102, 9102)], interactive=True,
@@ -367,6 +367,11 @@ def metric_config_gen(module, class_name_str):
for config in config_list: for config in config_list:
if config['class_name'] == class_name: if config['class_name'] == class_name:
grafana_list.append(config) grafana_list.append(config)
for idx, grafana_dict in enumerate(grafana_list):
if idx + 1 == len(grafana_list):
grafana_dict['is_last'] = 1
else:
grafana_dict['is_last'] = 0
grafana_configs_dir = os.path.join(get_directory('chassis-agent'), 'metric-configs') grafana_configs_dir = os.path.join(get_directory('chassis-agent'), 'metric-configs')
grafana_file_path = os.path.join(grafana_configs_dir, 'grafana.json.mako') grafana_file_path = os.path.join(grafana_configs_dir, 'grafana.json.mako')
output_file = os.path.join('grafana_dashboards', f'{class_name}_Grafana.json') output_file = os.path.join('grafana_dashboards', f'{class_name}_Grafana.json')

View File

@@ -2,7 +2,8 @@ AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:l
WEB_SERVER_ADDRESS: '0.0.0.0:8000' WEB_SERVER_ADDRESS: '0.0.0.0:8000'
RPC_EXCHANGE: 'nameko-rpc' RPC_EXCHANGE: 'nameko-rpc'
max_workers: 10 max_workers: 20
PREFETCH_COUNT: 20
parent_calls_tracked: 20 parent_calls_tracked: 20
LOGGING: LOGGING:

View File

@@ -1,5 +1,6 @@
AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:localhost}:${RABBIT_PORT:5672}/ AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:localhost}:${RABBIT_PORT:5672}/
RPC_EXCHANGE: 'nameko-rpc' RPC_EXCHANGE: 'nameko-rpc'
max_workers: 10 max_workers: 20
PREFETCH_COUNT: 20
parent_calls_tracked: 20 parent_calls_tracked: 20

View File

@@ -1,7 +1,8 @@
AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:localhost}:${RABBIT_PORT:5672}/ AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:localhost}:${RABBIT_PORT:5672}/
RPC_EXCHANGE: 'nameko-rpc' RPC_EXCHANGE: 'nameko-rpc'
max_workers: 10 max_workers: 20
PREFETCH_COUNT: 20
parent_calls_tracked: 20 parent_calls_tracked: 20
LOGGING: LOGGING:

View File

@@ -2,7 +2,8 @@ AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:l
WEB_SERVER_ADDRESS: '0.0.0.0:8000' WEB_SERVER_ADDRESS: '0.0.0.0:8000'
RPC_EXCHANGE: 'nameko-rpc' RPC_EXCHANGE: 'nameko-rpc'
max_workers: 10 max_workers: 20
PREFETCH_COUNT: 20
parent_calls_tracked: 20 parent_calls_tracked: 20
LOGGING: LOGGING:

View File

@@ -1,7 +1,8 @@
AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:localhost}:${RABBIT_PORT:5672}/ AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:localhost}:${RABBIT_PORT:5672}/
RPC_EXCHANGE: 'nameko-rpc' RPC_EXCHANGE: 'nameko-rpc'
max_workers: 10 max_workers: 20
PREFETCH_COUNT: 20
parent_calls_tracked: 20 parent_calls_tracked: 20
LOGGING: LOGGING:

View File

@@ -1,7 +1,8 @@
AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:localhost}:${RABBIT_PORT:5672}/ AMQP_URI: pyamqp://${RABBIT_USER:admin}:${RABBIT_PASSWORD:admin}@${RABBIT_HOST:localhost}:${RABBIT_PORT:5672}/
RPC_EXCHANGE: 'nameko-rpc' RPC_EXCHANGE: 'nameko-rpc'
max_workers: 10 max_workers: 20
PREFETCH_COUNT: 20
parent_calls_tracked: 20 parent_calls_tracked: 20
LOGGING: LOGGING:

View File

@@ -9,13 +9,12 @@ with open(path.join(here, 'README.md'), encoding='utf-8') as f:
setup( setup(
name='namekoplus', name='namekoplus',
version='0.4.12', version='0.4.27',
description='A lightweight Python distributed microservice solution', description='A lightweight Python distributed microservice solution',
long_description=long_description, long_description=long_description,
long_description_content_type='text/markdown', long_description_content_type='text/markdown',
url='', url='',
project_urls={ project_urls={
'Documentation': 'https://doc.bearcatlog.com/',
'Source Code': 'https://github.com/Bryanthelol/namekoplus', 'Source Code': 'https://github.com/Bryanthelol/namekoplus',
'Bug Tracker': 'https://github.com/Bryanthelol/namekoplus/issues', 'Bug Tracker': 'https://github.com/Bryanthelol/namekoplus/issues',
}, },
@@ -50,7 +49,7 @@ setup(
install_requires=[ install_requires=[
'nameko==3.0.0rc11', 'nameko==3.0.0rc11',
'click==8.1.5', 'click==8.1.5',
'python-on-whales==0.64.0', 'python-on-whales==0.65.0',
'pytest==7.4.0', 'pytest==7.4.0',
'mako==1.2.4', 'mako==1.2.4',
'shortuuid==1.0.11' 'shortuuid==1.0.11'
@@ -58,13 +57,15 @@ setup(
extras_require={ extras_require={
'ha': ['tenacity==8.2.2', 'ha': ['tenacity==8.2.2',
'cachetools==5.3.0', 'cachetools==5.3.0',
'circuitbreaker==2.0.0', 'circuitbreaker==2.0.0'],
'logstash_formatter==0.5.17'], 'ob': ['nameko-sentry==1.0.0',
'ob': ['statsd==4.0.1',
'nameko-sentry==1.0.0',
'nameko-tracer==1.4.0'], 'nameko-tracer==1.4.0'],
'log': ['loguru==0.7.2',
'logstash_formatter==0.5.17'],
'metric': ['statsd==4.0.1'],
'schema': ['marshmallow==3.20.1'], 'schema': ['marshmallow==3.20.1'],
'security': ['cryptography'], 'security': ['cryptography'],
'dev': ['environs==9.5.0'] 'dev': ['python-dotenv==1.0.0',
'environs==9.5.0']
}, },
) )