Client code for python Mona over Unix Domain Socket protocol
Project description
Mona's Unix Domain Socket client code
This repository contains all Mona python client for UDS code. The main package is under the dir "client", and is published to PyPi as "mona-uds-client".
The Mona UDS client requires a Mona Agent deployed locally in order to run. Other packages contain required information about how to install the Mona Agent in different environments and are published separately.
With any issues please email itai@monalabs.io.
Example use:
Example code can be found in client/mona_uds_client_test.py.
In a nutshell, after installing the PyPi package: $ pip install mona_uds_client
This is the common use:
from mona_uds_client.mona_uds_client import MonaUdsClient, MonaSingleMessage
# Use User ID as supplied by Mona team here.
client = MonaUdsClient("test_user")
# Use relevant context ID as defined in Mona configuration.
context_class = "MY_CONTEXT"
# Export a batch of two messages to Mona.
message1 = {"x": 1, "s": "some_str", "l": ["a"], "o": {"k": ["v1", "v2"]}}
message2 = {"x": 2, "s": "another_str", "l": ["b"], "o": {"k": ["v3", "v4"]}}
# Actual export
client.export(
[
MonaSingleMessage(
contextId="context_id1",
message=message1,
arcClass=context_class,
), # No export timestamp means use current time
MonaSingleMessage(
contextId="context_id2",
message=message2,
arcClass=context_class,
exportTimestamp=1234567890
),
]
)
Deployment
The UDS client uses a local folder to communicate with Mona UDS agent. As a result, when deployed on a container, the following mounts are required to be added to the container's YAML:
In spec.template.spec:
volumes:
- name: uds-mona-socket
hostPath:
path: /var/run/mona-agent/
In spec.template.spec.container:
volumeMounts:
- mountPath: /uds/mona
name: uds-mona-socket
Uploading new version to PyPI
The main reference to follow to do that is on: https://packaging.python.org/tutorials/packaging-projects/
Prerequisites:
- Register on PyPI with your mona email: https://pypi.org/
- Ask itai@monalabs.io or nemo@monalabs.io to add you as collaborator
- If not installed, install twine: $ python3 -m pip install --user --upgrade twine
- If not installed, install build tools: $ python3 -m pip install --user --upgrade setuptools wheel
Actual upload:
- Change version number under setup.py
- If a new dependency is required, add it under setup.py under "install_requires"
- Build new version:
$ python3 setup.py sdist bdist_wheel
- Upload new version (can change '*' to actual version):
$ python -m twine upload dist/*
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
Built Distribution
File details
Details for the file mona_uds_client-0.0.6.tar.gz
.
File metadata
- Download URL: mona_uds_client-0.0.6.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.22.0 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4184d5631b9bd67ee10fb7cf3a03ed78a80a584299bcff0258aedafc61f305f3 |
|
MD5 | 04b07936b5fc77e619197a08eaaa66c1 |
|
BLAKE2b-256 | 816c33d849831f70a10e12b5fae37902f66a681231bd4eb9a587a961196d286e |
File details
Details for the file mona_uds_client-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: mona_uds_client-0.0.6-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.22.0 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cf71ec09b3d17fdf372383d75d4212f3ce782aea2702b54aba5aecba5026d8e |
|
MD5 | c1cba7d010909548a376a306a02e983b |
|
BLAKE2b-256 | 481623feaa4c3fbc72dad27fc07601b88bf103dab9e7dc4b281e5c222b4960f2 |