14 Commits
dev ... 1.0.0

4 changed files with 48 additions and 31 deletions

View File

@@ -1,10 +1,11 @@
name: Chack code and publish on master push
name: Check code and publish on master push
on:
push:
branches:
- "master"
paths:
- "src/*.py"
- "*.py"
jobs:
@@ -14,52 +15,68 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pylint
- name: Analysing the code with pylint
run: pylint --exit-zero $(git ls-files '*.py')
publish:
needs: check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup GitVersion
uses: gittools/actions/gitversion/setup@v0.9.7
with:
versionSpec: 5.x
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install prometheus_client
pip install pylint
- name: Analysing the code with pylint
run: pylint --exit-zero $(git ls-files '*.py')
- name: Determine Version
uses: gittools/actions/gitversion/execute@v0.9.7
id: gitversion
with:
useConfigFile: true
configFilePath: ./.github/config/gitversion.yml
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: src
path: |
./
!./.github/
!./.gitignore
!./.git/
outputs:
version: ${{ steps.gitversion.outputs.SemVer }}
publish:
name: Publish
needs: check
runs-on: ubuntu-latest
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: src
path: ./
- name: Create zip
uses: ihiroky/archive-action@v1
with:
root_dir: ./
file_path: ipsec_exporter_${{steps.gitversion.outputs.version}}.zip
file_path: ipsec_exporter_${{ needs.check.outputs.version }}.zip
- name: Create tar.gz
uses: ihiroky/archive-action@v1
with:
root_dir: ./
file_path: ipsec_exporter_${{steps.gitversion.outputs.version}}.tar.gz
file_path: ipsec_exporter_${{ needs.check.outputs.version }}.tar.gz
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{steps.gitversion.outputs.version}}
release_name: ${{steps.gitversion.outputs.version}}
tag_name: ${{ needs.check.outputs.version }}
release_name: ${{ needs.check.outputs.version }}
body_path: ./RELEASE.md
draft: false
prerelease: false
@@ -69,8 +86,8 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./ipsec_exporter_${{steps.gitversion.outputs.version}}.zip
asset_name: ipsec_exporter_${{steps.gitversion.outputs.version}}.zip
asset_path: ./ipsec_exporter_${{ needs.check.outputs.version }}.zip
asset_name: ipsec_exporter_${{ needs.check.outputs.version }}.zip
asset_content_type: application/zip
- name: Upload tar.gz archive
uses: actions/upload-release-asset@v1
@@ -78,7 +95,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./ipsec_exporter_${{steps.gitversion.outputs.version}}.tar.gz
asset_name: ipsec_exporter_${{steps.gitversion.outputs.version}}.tar.gz
asset_path: ./ipsec_exporter_${{ needs.check.outputs.version }}.tar.gz
asset_name: ipsec_exporter_${{ needs.check.outputs.version }}.tar.gz
asset_content_type: application/gzip

View File

@@ -1,8 +1,8 @@
from abc import abstractmethod
from prometheus_client import *
from re import Pattern
import re
import os
from prometheus_client import Gauge
@@ -71,4 +71,4 @@ class IPsecTrafficCustomMetric(CustomMetric):
out_value = result.groupdict()["OUT_VALUE"]
self.gauge.labels(lease, connection, "in").set(int(in_value))
self.gauge.labels(lease, connection, "out").set(int(out_value))
self.gauge.labels(lease, connection, "out").set(int(out_value))

View File

@@ -1,5 +1,5 @@
from abc import ABC, abstractmethod
from src.metric import *
from src.metric import Metric, CommandMetric, CustomMetric
import os
@@ -40,4 +40,4 @@ class CustomMetricsSource(MetricsSource):
def update(self):
for metric in self._metrics:
metric.update()
metric.update()

View File

@@ -1,6 +1,6 @@
import prometheus_client
import time
from src.metrics_source import *
import prometheus_client
from src.metrics_source import MetricsSource
@@ -29,4 +29,4 @@ class PrometheusMetricsServer:
while True:
for source in self._metrics_sources:
source.update()
time.sleep(self.interval)
time.sleep(self.interval)