Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ (⚠️ devops) 🗃️ Is922 resource tracking/1. version of regular scraping #4380

Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d96b312
migration - creating new table for resource tracking
matusdrobuliak66 Jun 18, 2023
2a298c3
adding new table resource tracking
matusdrobuliak66 Jun 18, 2023
5c5db29
adding needed requerements
matusdrobuliak66 Jun 18, 2023
76867f1
adding service core changes
matusdrobuliak66 Jun 18, 2023
f323544
adding database tests
matusdrobuliak66 Jun 18, 2023
ea7ddf9
adding needed env vars
matusdrobuliak66 Jun 18, 2023
ec1ff30
merge master
matusdrobuliak66 Jun 18, 2023
44a41f1
removing redundant @pytest.mark.testit
matusdrobuliak66 Jun 18, 2023
81703a2
additional minor cleaning
matusdrobuliak66 Jun 18, 2023
7ee22a9
pylint fix
matusdrobuliak66 Jun 18, 2023
bf42426
revision fix
matusdrobuliak66 Jun 18, 2023
364e98e
minor fix
matusdrobuliak66 Jun 18, 2023
77bf46d
removing file that in the end was not used during development
matusdrobuliak66 Jun 19, 2023
e344dc3
Merge branch 'master' into is922-resource-tracking/adding-variables
matusdrobuliak66 Jun 20, 2023
33a374a
Merge branch 'master' into is922-resource-tracking/adding-variables
matusdrobuliak66 Jun 21, 2023
c5c4e4b
@sanderegg review
matusdrobuliak66 Jun 21, 2023
5a5a245
@GitHK review
matusdrobuliak66 Jun 21, 2023
6829742
Merge branch 'master' into is922-resource-tracking/adding-variables
matusdrobuliak66 Jun 21, 2023
910f882
@pcrespov review
matusdrobuliak66 Jun 22, 2023
a0a39ba
Merge branch 'is922-resource-tracking/adding-variables' of github.com…
matusdrobuliak66 Jun 22, 2023
ab1d2b2
Merge branch 'master' into is922-resource-tracking/adding-variables
matusdrobuliak66 Jun 22, 2023
637b03d
revision fix
matusdrobuliak66 Jun 22, 2023
1a1d98a
adding machine fqdn ENV variable, so we can test it also on master
matusdrobuliak66 Jun 22, 2023
b782cac
fix shared db_async_engine
matusdrobuliak66 Jun 22, 2023
950868d
rm not needed dependency
matusdrobuliak66 Jun 22, 2023
c680e50
Merge branch 'master' into is922-resource-tracking/adding-variables
matusdrobuliak66 Jun 22, 2023
99dab0a
Merge branch 'master' into is922-resource-tracking/adding-variables
matusdrobuliak66 Jun 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
"""New resource_tracker_container table

Revision ID: 967cff1d52ac
Revises: c8f072c72adc
Create Date: 2023-06-13 06:37:31.542190+00:00

"""
import sqlalchemy as sa
from alembic import op

# revision identifiers, used by Alembic.
revision = "967cff1d52ac"
down_revision = "c8f072c72adc"
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table(
"resource_tracker_container",
sa.Column("id", sa.String(), nullable=False),
sa.Column("image", sa.String(), nullable=False),
sa.Column("user_id", sa.BigInteger, nullable=False),
sa.Column("product_name", sa.String(), nullable=False),
sa.Column("cpu_reservation", sa.BigInteger(), nullable=False),
sa.Column("ram_reservation", sa.BigInteger(), nullable=False),
sa.Column("container_cpu_usage_seconds_total", sa.Float(), nullable=False),
sa.Column("created_timestamp", sa.DateTime(timezone=True), nullable=False),
sa.Column(
"last_prometheus_scraped_timestamp",
sa.DateTime(timezone=True),
nullable=False,
),
sa.Column(
"last_row_updated_timestamp",
sa.DateTime(timezone=True),
server_default=sa.text("now()"),
nullable=False,
),
sa.PrimaryKeyConstraint("id", name="resource_tracker_container_pkey"),
)
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table("resource_tracker_container")
# ### end Alembic commands ###
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
""" resource_tracker_container table

- Table where we store the resource usage of each container that
we scrape via resource-usage-tracker service
"""

import sqlalchemy as sa
from sqlalchemy.sql import func

from .base import metadata

resource_tracker_container = sa.Table(
"resource_tracker_container",
metadata,
sa.Column(
"id", # container_id
sa.String,
nullable=False,
),
sa.Column(
"image",
sa.String,
nullable=False,
doc="ex. registry.osparc.io/simcore/services/dynamic/jupyter-smash:3.0.9",
),
sa.Column(
"user_id",
sa.BigInteger,
nullable=False,
),
sa.Column(
"product_name",
sa.String,
nullable=False,
),
sa.Column("cpu_reservation", sa.BigInteger, nullable=False),
sa.Column("ram_reservation", sa.BigInteger, nullable=False),
sa.Column("container_cpu_usage_seconds_total", sa.Float, nullable=False),
sa.Column(
"created_timestamp",
sa.DateTime(timezone=True),
nullable=False,
doc="First container creation timestamp (UTC timestamp)",
),
sa.Column(
"last_prometheus_scraped_timestamp",
sa.DateTime(timezone=True),
nullable=False,
doc="Last prometheus scraped timestamp (UTC timestamp)",
),
sa.Column(
"last_row_updated_timestamp",
sa.DateTime(timezone=True),
nullable=False,
server_default=func.now(),
doc="Last row updated timestamp (UTC timestamp)",
),
# ---------------------------
sa.PrimaryKeyConstraint("id", name="resource_tracker_container_pkey"),
)
10 changes: 10 additions & 0 deletions services/docker-compose.devel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,16 @@ services:
- SC_BOOT_MODE=debug-ptvsd
- RESOURCE_USAGE_TRACKER_LOGLEVEL=DEBUG
- DEBUG=true
- LOG_FORMAT_LOCAL_DEV_ENABLED=${LOG_FORMAT_LOCAL_DEV_ENABLED}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_ENDPOINT=${POSTGRES_ENDPOINT}
- POSTGRES_HOST=${POSTGRES_HOST}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_USER=${POSTGRES_USER}
- PROMETHEUS_URL=${RESOURCE_USAGE_TRACKER_PROMETHEUS_URL}
- PROMETHEUS_USERNAME=${RESOURCE_USAGE_TRACKER_PROMETHEUS_USERNAME}
- PROMETHEUS_PASSWORD=${RESOURCE_USAGE_TRACKER_PROMETHEUS_PASSWORD}
volumes:
- ./resource-usage-tracker:/devel/services/resource-usage-tracker
- ../packages:/devel/packages
Expand Down
6 changes: 3 additions & 3 deletions services/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -194,9 +194,9 @@ services:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_USER=${POSTGRES_USER}
- PROMETHEUS_URL=${PROMETHEUS_URL}
- PROMETHEUS_USERNAME=${PROMETHEUS_USERNAME}
- PROMETHEUS_PASSWORD=${PROMETHEUS_PASSWORD}
- PROMETHEUS_URL=${RESOURCE_USAGE_TRACKER_PROMETHEUS_URL}
- PROMETHEUS_USERNAME=${RESOURCE_USAGE_TRACKER_PROMETHEUS_USERNAME}
- PROMETHEUS_PASSWORD=${RESOURCE_USAGE_TRACKER_PROMETHEUS_PASSWORD}
- RESOURCE_USAGE_TRACKER_LOGLEVEL=${LOG_LEVEL:-INFO}

static-webserver:
Expand Down
8 changes: 8 additions & 0 deletions services/resource-usage-tracker/.env-devel
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
RESOURCE_USAGE_TRACKER_DEV_FEATURES_ENABLED=1

LOG_LEVEL=DEBUG

POSTGRES_USER=test
POSTGRES_PASSWORD=test
POSTGRES_DB=test
POSTGRES_HOST=localhost
4 changes: 4 additions & 0 deletions services/resource-usage-tracker/requirements/_base.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,17 @@
# intra-repo required dependencies
--requirement ../../../packages/models-library/requirements/_base.in
--requirement ../../../packages/settings-library/requirements/_base.in
--requirement ../../../packages/postgres-database/requirements/_base.in
# service-library[fastapi]
--requirement ../../../packages/service-library/requirements/_base.in
--requirement ../../../packages/service-library/requirements/_fastapi.in


asyncpg # database
fastapi
packaging
prometheus_api_client
typer[all]
uvicorn[standard]
aiopg[sa]
orjson
Loading