25c87eb872
Log stash can handle the log events stateless. It means that it's not necessary to specify the kafka key when sending log events. This patch removes the kafka key building process. Change-Id: I2344985e567d899e95b0ac3df2d2677da1037dca Closes-Bug: 1589376 |
||
---|---|---|
.. | ||
api | ||
healthcheck | ||
middleware | ||
reference | ||
tests | ||
.gitignore | ||
README.md | ||
__init__.py | ||
server.py | ||
uri_map.py |
README.md
Monasca-log-api Python
Installation
To install the python api implementation, git clone the source and run the following command:
sudo python setup.py install
Configuration
If it installs successfully, you will need to make changes to the following two files to reflect your system settings, especially where kafka server is located::
/etc/monasca/log-api-config.conf
/etc/monasca/log-api-config.ini
Once the configurations are modified to match your environment, you can start up the server using either Gunicorn or Apache.
Start the Server -- for Gunicorn
The server can be run in the foreground, or as daemons:
Running the server in foreground mode with Gunicorn:
gunicorn -k eventlet --worker-connections=2000 --backlog=1000
--paste /etc/monasca/log-api.ini
Running the server as daemons with Gunicorn:
gunicorn -k eventlet --worker-connections=2000 --backlog=1000
--paste /etc/monasca/log-api.ini -D
Start the Server -- for Apache
To start the server using Apache: create a modwsgi file, create a modwsgi config file, and enable the wsgi module in Apache.
The modwsgi conf file may look something like this, and the site will need to be enabled:
Listen myhost:8082
Listen 127.0.0.1:8082
<VirtualHost *:8082>
WSGIDaemonProcess log-api processes=4 threads=4 socket-timeout=120 user=log group=log python-path=/usr/local/lib/python2.7/site-packages
WSGIProcessGroup log-api
WSGIApplicationGroup log-api
WSGIScriptAlias / /var/www/log/log-api.wsgi
ErrorLog /var/log/log-api/wsgi.log
LogLevel info
CustomLog /var/log/log-api/wsgi-access.log combined
<Directory /usr/local/lib/python2.7/site-packages/monasca_log_api>
Options Indexes FollowSymLinks MultiViews
Require all granted
AllowOverride None
Order allow,deny
allow from all
LimitRequestBody 102400
</Directory>
SetEnv no-gzip 1
</VirtualHost>
The wsgi file may look something like this:
from monasca_log_api.server import get_wsgi_app
application = get_wsgi_app(config_base_path='/etc/monasca')
Testing
Commandline run
To check the server from the commandline:
python server.py
PEP8 guidelines
To check if the code follows python coding style, run the following command from the root directory of this project:
tox -e pep8
Unit Tests
To run all the unit test cases, run the following command from the root directory of this project:
tox -e py27 (or -e py26, -e py33)
Coverage
To generate coverage results, run the following command from the root directory of this project:
tox -e cover
Building
To build an installable package, run the following command from the root directory of this project:
python setup.py sdist
Documentation
To generate documentation, run the following command from the root directory of this project:
make html
That will create documentation under build folder relative to root of the project.
# Copyright 2016 FUJITSU LIMITED
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.