Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@tsvenkat
Copy link

Monasca is the OpenStack project for MONitoring At SCAle.
Monasca also includes a Logging API that supports centralized
logging of logs. The monasca-log-api is a OpenStack based
microservice and supports Keystone (Identity Management) based
authentication. It provides a secure, reliable and multi-tenant
based Logging as a service.

The flow is as follows:

  1. Using the monsaca log configuration properties, get a token
    from keystone
  2. Cache this token for performance
  3. Get the monasca-log-api url from the keystone token service
    catalog. If the monasca_log_hosts is specified in the config,
    that would be used instead of the keystone catalog. This
    config property is a list of host names (or IPs) separated by
    comma
  4. If the hosts list is specified, select a random host and form
    an url using that
  5. Use the log url thus arrived at and open a HTTP connection.
    If it fails, get another random host. Use retries as well
  6. Build the monasca-log-api dimensions, token and content-type
    (HTTP headers) for the request
  7. Send the request to the open HTTP connection (using connection
    pools to reuse connections where possible)
  8. Batch the requests to avoid network overhead and improve
    throughput

@josegonzalez
Copy link
Member

I'm not adding any new shippers without some number of tests.

Monasca is the OpenStack project for MONitoring At SCAle.
Monasca also includes a Logging API that supports centralized
logging of logs. The monasca-log-api is a OpenStack based
microservice and supports Keystone (Identity Management) based
authentication. It provides a secure, reliable and multi-tenant
based Logging as a service.

The flow is as follows:
1. Using the monsaca log configuration properties, get a token
   from keystone
2. Cache this token for performance
3. Get the monasca-log-api url from the keystone token service
   catalog. If the monasca_log_hosts is specified in the config,
   that would be used instead of the keystone catalog. This
   config property is a list of host names (or IPs) separated by
   comma
4. If the hosts list is specified, select a random host and form
   an url using that
5. Use the log url thus arrived at and open a HTTP connection.
   If it fails, get another random host. Use retries as well
6. Build the monasca-log-api dimensions, token and content-type
   (HTTP headers) for the request
7. Send the request to the open HTTP connection (using connection
   pools to reuse connections where possible)
8. Batch the requests to avoid network overhead and improve
   throughput

Added unit tests and refactored for better readability
@tsvenkat
Copy link
Author

tsvenkat commented Jul 6, 2016

@josegonzalez sorry about the delay. Have refactored the code and added unit tests. Please review when you get a chance. Thanks.

@tsvenkat
Copy link
Author

tsvenkat commented Jul 6, 2016

I'm working on updating the documentation next.

@toabctl
Copy link

toabctl commented Jan 17, 2018

Any chance to get this merged?
@tsvenkat are you still working on this?

@josegonzalez
Copy link
Member

Needs docs.

@JamieCressey
Copy link
Member

Sorry for the delayed response. Tests should be fixed, feel free to rebase to kick off the tests again. Once docs are added we can get this merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.