ElasticSearch components for Python
This module is a part of the Pip.Services polyglot microservices toolkit.
The Elasticsearch module contains logging components with data storage on the Elasticsearch server.
The module contains the following packages:
- Build - contains a factory for the construction of components
- Log - Logging components
Use
Install the Python package as
pip install pip-services3-elasticsearch
Microservice components shall perform logging usual way using CompositeLogger component. The CompositeLogger will get ElasticSearchLogger from references and will redirect log messages there among other destinations.
from pip_services3_commons.config import IConfigurable
from pip_services3_commons.refer import IReferenceable
from pip_services3_components.log import CompositeLogger
class MyComponent(IConfigurable, IReferenceable):
def __init__(self):
super(MyComponent, self).__init__()
self.__logger = CompositeLogger()
def configure(self, config):
self.__logger.configure(config)
def set_references(self, references):
self.__logger.set_references(references)
def my_method(self, correlation_id, param1):
self.__logger.trace(correlation_id, 'Executed method mycomponent.mymethod')
# ...
Configuration for your microservice that includes ElasticSearch logger may look the following way.
...
{{#if ELASTICSEARCH_ENABLED}}
- descriptor: pip-services:logger:elasticsearch:default:1.0
connection:
uri: {{{ELASTICSEARCG_SERVICE_URI}}}
host: {{{ELASTICSEARCH_SERVICE_HOST}}}{{#unless ELASTICSEARCH_SERVICE_HOST}}localhost{{/unless}}
port: {{ELASTICSEARCG_SERVICE_PORT}}{{#unless ELASTICSEARCH_SERVICE_PORT}}9200{{/unless}}\
{{/if}}
...
Develop
For development you shall install the following prerequisites:
- Python 3.7+
- Visual Studio Code or another IDE of your choice
- Docker
Install dependencies:
pip install -r requirements.txt
Run automated tests:
python test.py
Generate API documentation:
./docgen.ps1
Before committing changes run dockerized build and test as:
./build.ps1
./test.ps1
./clear.ps1
Configure the vm.max_map_count
sudo sysctl -w vm.max_map_count=262144
fixes:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
Typed vs Type-less indexes
ES version 7 stopped supporting "types" and encouraged a separation of disperate data into different indexes. By default, this version of pip-services3-elasticsearch-node will support 7.x type-less indexes. You can support to the 6.x "typed" approach by setting the include_type_name option to true. This allows it to work with either 6.x or 7.x ElasticSearch servers.
You can read more about how this is accomplished here
Contacts
The library is created and maintained by Sergey Seroukhov.
The documentation is written by:
- Mark Makarychev
Metadata
Release files for pip-services3-elasticsearch 3.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pip_services3_elasticsearch-3.1.6.tar.gz | 11.6 kB | Without provenance | Details for pip_services3_elasticsearch-3.1.6.tar.gz |
Release files / pip_services3_elasticsearch-3.1.6.tar.gz
| Download URL | pip_services3_elasticsearch-3.1.6.tar.gz |
|---|---|
| Size | 11.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ae997902866c04f01cc956d67d5dd5bc5cfdcf269752f6d052f332341dc4692
|
|
BLAKE2b-256 checksum How to use checksums |
0b3a48500aa80741438e979b1527f1ce9cd662353ef8cba505aa0778ef903ce2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.10
|
Security for pip-services3-elasticsearch 3.1.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.