Skip to main content

Extract HK from MySQL Facility Database for Ariel

Project description

Extraction of HK from the MySQL Facility Database

During the Ariel TA test campaign at CSL, facility (and potentially other) housekeeping data will be stored in the MySQL facility database. To store (housekeeping) data in a consistent way across devices/processes and to enable quick-look analysis (e.g. via Grafana dashboards), we want to extract the data from the MySQL facility database and ingest it into our TA-EGSE framework.


Database Structure

The structure of the MySQL facility database is as follows:

  • Each sensor has its own table with recorded values (one measure every minute).
  • Each table has the following column names:
    • measure_id: Identifiers for the entries in the table (basically the row number),
    • measure_timestamp: Timestamp of the measurements [Unix time],
    • measure_value: Recorded values (already converted/calibrated).

Local Settings

The following entries have to be included in the (local) settings file:

Facility HK:
    TABLES:
        
Facility DB:
    USER:
    PASSWORD:
  • In the "TABLES" block under "Facility HK", you have to link the table names (as in the facility database) to the storage mnemonic (as in the TA-EGSE framework, to pass to the Storage Manager) and the server identifier. This can be done by adding entries to the "TABLES" block, in the following format:

    <table name (in facility database)>:  (storage mnemonic, server identifier)
    
  • In the "Facility DB" block, the credentials to connect to the MySQL facility database have to be specified via "USER" and "PASSWORD".


Functionality

The FacilityHousekeepingExporter process is responsible for:

  • Extracting housekeeping data from the MySQL facility database,
  • Storing the extracted housekeeping in dedicated, TA-EGSE-consistent CSV files (via the Storage Manager),
  • Ingesting the extracted housekeeping in the InfluxDB metrics database.

For each of the selected tables in the facility database, a dedicated thread will check for new entries in that table. When a new entry appears in such a table, the corresponding thread will receive the new data as a dict and take the following action:

  • Convert the timestamp to the format that we use throughout the TA-EGSE framework (YYYY-mm-ddTHH:MM:SS.μs+0000).
  • Re-name the key for the timestamp in the dictionary to "timestamp".
  • Re-name the key for the recorded value to the table name.
  • If required by the telemetry, further re-naming of the keys in the dictionary will be performed.
  • Send the new housekeeping value and corresponding timestamp to the Storage Manager. The latter will store it in a dedicated CSV file.
  • Send the new housekeeping value and corresponding timestamp to the InfluxDB metrics database.

Enable Binary Logging

To make this all work, binary logging should be enabled on the MySQL server. This can be done by adding the following information in the my.cnf file:

[mysqld]
log-bin=mysql-bin
server-id=<server identifier>
binlog_format=ROW

You would have to add an entry for each of the server identifiers listed in the (local) settings file (see section above).

To find this file, check the MYSQL_HOME environment variable.

When you have added all required server identifiers, the MySQL server should be re-started. Also make sure that your user had REPLICATION SLAVE or REPLICATION CLIENT privileges. This can be configured as follows:

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'your_user'@'%';
FLUSH PRIVILEGES;

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ariel_facility-0.20.5.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ariel_facility-0.20.5-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file ariel_facility-0.20.5.tar.gz.

File metadata

  • Download URL: ariel_facility-0.20.5.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ariel_facility-0.20.5.tar.gz
Algorithm Hash digest
SHA256 cfc9327f09c18459293bb197a3097a51680d57caafa5eea5793614f90e27f0f7
MD5 188577d44cfc86508693fb40fc6ec216
BLAKE2b-256 039a20d39377a476127773e649b631a176d9707ade72ec162601394fc7dfe1f0

See more details on using hashes here.

File details

Details for the file ariel_facility-0.20.5-py3-none-any.whl.

File metadata

  • Download URL: ariel_facility-0.20.5-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ariel_facility-0.20.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0f764a5f403535ff5b291db7c6ecfc2bc878b125693b6e292872de2b9fe08d20
MD5 9fcc479965c5456a4c55d1aa19f1f1e7
BLAKE2b-256 e8e497ba39c5e02cb416fc6305b8db9b71c4b937aa7a3eb1e1ddeebbbf0e080e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page