summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 10:15:42 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 10:15:42 +0000
commit45c2f93bf66b7a07c8192063037c2424853fd3c9 (patch)
tree5f851a96038b665f9db216680d286ddfbf4ea20d
parentd1329ed9642058df23ff641a0e6d66d5b4d6cf54 (diff)
automatic import of python-splunk-handler-zuulopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-splunk-handler-zuul.spec575
-rw-r--r--sources1
3 files changed, 577 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..e75dd58 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/splunk_handler_zuul-0.1.0.tar.gz
diff --git a/python-splunk-handler-zuul.spec b/python-splunk-handler-zuul.spec
new file mode 100644
index 0000000..70b777a
--- /dev/null
+++ b/python-splunk-handler-zuul.spec
@@ -0,0 +1,575 @@
+%global _empty_manifest_terminate_build 0
+Name: python-splunk-handler-zuul
+Version: 0.1.0
+Release: 1
+Summary: A Python logging handler that sends zuul conponent logs to Splunk
+License: MIT License
+URL: https://github.com/lidall/splunk_handler
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e4/af/f7c009d26d5935d1f963a4d7c3ca38d4bd97912a223a88896f7bdbf5b8d0/splunk_handler_zuul-0.1.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-requests
+Requires: python3-json-logger
+
+%description
+# Splunk Handler
+
+**Splunk Handler is a Python Logger for sending logged events to an installation of Splunk Enterprise.**
+
+*This logger requires the destination Splunk Enterprise server to have enabled and configured the [Splunk HTTP Event Collector](http://dev.splunk.com/view/event-collector/SP-CAAAE6M).*
+
+## A Note on Using with AWS Lambda
+
+[AWS Lambda](https://aws.amazon.com/lambda/) has a custom implementation of Python Threading, and does not signal when the main thread exits. Because of this, it is possible to have Lambda halt execution while logs are still being processed. To ensure that execution does not terminate prematurely, Lambda users will be required to invoke splunk_handler.force_flush directly as the very last call in the Lambda handler, which will block the main thread from exiting until all logs have processed.
+~~~python
+from splunk_handler import force_flush
+
+def lambda_handler(event, context):
+ do_work()
+ force_flush() # Flush logs in a blocking manner
+~~~
+
+## Introduction
+
+This package is based on the splunk_handler of [Zach Tylor](https://github.com/zach-taylor/splunk_handler).
+The adjustment in this package enables json format in event that sent to spunk. Additionally, it is designed to
+suit logging of [zuul components](https://zuul-ci.org/docs/zuul/discussion/components.html). Thus, the source-type
+will reflect the zuul service and the event will contains eventId and buildId within zuul log.
+
+## Installation
+
+Pip:
+
+ pip install splunk_handler_zuul
+
+Manual:
+
+ python setup.py install
+
+## Usage
+
+ from splunk_handler import SplunkHandler
+
+Then use it like any other regular Python [logging handler](https://docs.python.org/2/howto/logging.html#handlers).
+
+Example:
+
+~~~python
+ import logging
+ from splunk_handler import SplunkHandler
+ splunk = SplunkHandler(
+ host='splunk.example.com',
+ port='8088',
+ token='851A5E58-4EF1-7291-F947-F614A76ACB21',
+ index='main',
+ record_format=True # will make the output as json
+ #allow_overrides=True # whether to look for _<param in log data (ex: _index)
+ #debug=True # whether to print module activity to stdout, defaults to False
+ #flush_interval=15.0, # send batch of logs every n sec, defaults to 15.0, set '0' to block thread & send immediately
+ #force_keep_ahead=True # sleep instead of dropping logs when queue fills
+ #hostname='hostname', # manually set a hostname parameter, defaults to socket.gethostname()
+ #protocol='http', # set the protocol which will be used to connect to the splunk host
+ #proxies={
+ # 'http': 'http://10.10.1.10:3128',
+ # 'https': 'http://10.10.1.10:1080',
+ # }, set the proxies for the session request to splunk host
+ #
+ #queue_size=5000, # a throttle to prevent resource overconsumption, defaults to 5000, set to 0 for no max
+ #record_format=True, whether the log format will be json
+ #retry_backoff=1, the requests lib backoff factor, default options will retry for 1 min, defaults to 2.0
+ #retry_count=5, number of retry attempts on a failed/erroring connection, defaults to 5
+ #source='source', # manually set a source, defaults to the log record.pathname
+ #sourcetype='sourcetype', # manually set a sourcetype, defaults to 'text'
+ #verify=True, # turn SSL verification on or off, defaults to True
+ #timeout=60, # timeout for waiting on a 200 OK from Splunk server, defaults to 60s
+ )
+
+ logging.getLogger('').addHandler(splunk)
+
+ logging.warning('hello!')
+~~~
+
+### Logging Config
+
+Sometimes it's a good idea to create a logging configuration using a Python dict
+and the `logging.config.dictConfig` function. This method is used by default in Django.
+
+Here is an example dictionary config and how it might be used in a settings file:
+
+~~~python
+import os
+
+# Splunk settings
+SPLUNK_HOST = os.getenv('SPLUNK_HOST', 'splunk.example.com')
+SPLUNK_PORT = int(os.getenv('SPLUNK_PORT', '8088'))
+SPLUNK_TOKEN = os.getenv('SPLUNK_TOKEN', '851A5E58-4EF1-7291-F947-F614A76ACB21')
+SPLUNK_INDEX = os.getenv('SPLUNK_INDEX', 'main')
+
+LOGGING = {
+ 'version': 1,
+ 'disable_existing_loggers': False,
+ 'formatters': {
+ 'json': {
+ '()': 'pythonjsonlogger.jsonlogger.JsonFormatter',
+ 'format': '%(asctime)s %(created)f %(exc_info)s %(filename)s %(funcName)s %(levelname)s %(levelno)s %(lineno)d %(module)s %(message)s %(pathname)s %(process)s %(processName)s %(relativeCreated)d %(thread)s %(threadName)s'
+ }
+ },
+ 'handlers': {
+ 'splunk': {
+ 'level': 'DEBUG',
+ 'class': 'splunk_handler.SplunkHandler',
+ 'formatter': 'json',
+ 'host': SPLUNK_HOST,
+ 'port': SPLUNK_PORT,
+ 'token': SPLUNK_TOKEN,
+ 'index': SPLUNK_INDEX,
+ 'sourcetype': 'json',
+ },
+ 'console': {
+ 'level': 'DEBUG',
+ 'class': 'logging.StreamHandler',
+ }
+ },
+ 'loggers': {
+ '': {
+ 'handlers': ['console', 'splunk'],
+ 'level': 'DEBUG'
+ }
+ }
+}
+~~~
+
+Here is an example file config, and how it might be used in a config file:
+
+~~~
+[loggers]
+keys=root
+
+[handlers]
+keys=consoleHandler,splunkHandler
+
+[formatters]
+keys=simpleFormatter
+
+[logger_root]
+level=%(loglevel)s
+handlers=consoleHandler,splunkHandler
+
+[handler_consoleHandler]
+class=StreamHandler
+level=%(loglevel)s
+formatter=simpleFormatter
+args=(sys.stdout,)
+
+[handler_splunkHandler]
+class=splunk_handler.SplunkHandler
+level=%(loglevel)s
+formatter=simpleFormatter
+args=('my-splunk-host.me.com', '', os.environ.get('SPLUNK_TOKEN_DEV', 'changeme'), 'my_index')
+kwargs={'url':'https://my-splunk-host.me.com/services/collector/event', 'verify': False, 'record_format': True}
+
+[formatter_simpleFormatter]
+class=pythonjsonlogger.jsonlogger.JsonFormatter
+format=%(asctime)s %(levelname)s %(name)s %(message)s
+
+~~~
+
+## License
+
+This project is licensed under the terms of the [MIT license](http://opensource.org/licenses/MIT).
+
+
+
+
+%package -n python3-splunk-handler-zuul
+Summary: A Python logging handler that sends zuul conponent logs to Splunk
+Provides: python-splunk-handler-zuul
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-splunk-handler-zuul
+# Splunk Handler
+
+**Splunk Handler is a Python Logger for sending logged events to an installation of Splunk Enterprise.**
+
+*This logger requires the destination Splunk Enterprise server to have enabled and configured the [Splunk HTTP Event Collector](http://dev.splunk.com/view/event-collector/SP-CAAAE6M).*
+
+## A Note on Using with AWS Lambda
+
+[AWS Lambda](https://aws.amazon.com/lambda/) has a custom implementation of Python Threading, and does not signal when the main thread exits. Because of this, it is possible to have Lambda halt execution while logs are still being processed. To ensure that execution does not terminate prematurely, Lambda users will be required to invoke splunk_handler.force_flush directly as the very last call in the Lambda handler, which will block the main thread from exiting until all logs have processed.
+~~~python
+from splunk_handler import force_flush
+
+def lambda_handler(event, context):
+ do_work()
+ force_flush() # Flush logs in a blocking manner
+~~~
+
+## Introduction
+
+This package is based on the splunk_handler of [Zach Tylor](https://github.com/zach-taylor/splunk_handler).
+The adjustment in this package enables json format in event that sent to spunk. Additionally, it is designed to
+suit logging of [zuul components](https://zuul-ci.org/docs/zuul/discussion/components.html). Thus, the source-type
+will reflect the zuul service and the event will contains eventId and buildId within zuul log.
+
+## Installation
+
+Pip:
+
+ pip install splunk_handler_zuul
+
+Manual:
+
+ python setup.py install
+
+## Usage
+
+ from splunk_handler import SplunkHandler
+
+Then use it like any other regular Python [logging handler](https://docs.python.org/2/howto/logging.html#handlers).
+
+Example:
+
+~~~python
+ import logging
+ from splunk_handler import SplunkHandler
+ splunk = SplunkHandler(
+ host='splunk.example.com',
+ port='8088',
+ token='851A5E58-4EF1-7291-F947-F614A76ACB21',
+ index='main',
+ record_format=True # will make the output as json
+ #allow_overrides=True # whether to look for _<param in log data (ex: _index)
+ #debug=True # whether to print module activity to stdout, defaults to False
+ #flush_interval=15.0, # send batch of logs every n sec, defaults to 15.0, set '0' to block thread & send immediately
+ #force_keep_ahead=True # sleep instead of dropping logs when queue fills
+ #hostname='hostname', # manually set a hostname parameter, defaults to socket.gethostname()
+ #protocol='http', # set the protocol which will be used to connect to the splunk host
+ #proxies={
+ # 'http': 'http://10.10.1.10:3128',
+ # 'https': 'http://10.10.1.10:1080',
+ # }, set the proxies for the session request to splunk host
+ #
+ #queue_size=5000, # a throttle to prevent resource overconsumption, defaults to 5000, set to 0 for no max
+ #record_format=True, whether the log format will be json
+ #retry_backoff=1, the requests lib backoff factor, default options will retry for 1 min, defaults to 2.0
+ #retry_count=5, number of retry attempts on a failed/erroring connection, defaults to 5
+ #source='source', # manually set a source, defaults to the log record.pathname
+ #sourcetype='sourcetype', # manually set a sourcetype, defaults to 'text'
+ #verify=True, # turn SSL verification on or off, defaults to True
+ #timeout=60, # timeout for waiting on a 200 OK from Splunk server, defaults to 60s
+ )
+
+ logging.getLogger('').addHandler(splunk)
+
+ logging.warning('hello!')
+~~~
+
+### Logging Config
+
+Sometimes it's a good idea to create a logging configuration using a Python dict
+and the `logging.config.dictConfig` function. This method is used by default in Django.
+
+Here is an example dictionary config and how it might be used in a settings file:
+
+~~~python
+import os
+
+# Splunk settings
+SPLUNK_HOST = os.getenv('SPLUNK_HOST', 'splunk.example.com')
+SPLUNK_PORT = int(os.getenv('SPLUNK_PORT', '8088'))
+SPLUNK_TOKEN = os.getenv('SPLUNK_TOKEN', '851A5E58-4EF1-7291-F947-F614A76ACB21')
+SPLUNK_INDEX = os.getenv('SPLUNK_INDEX', 'main')
+
+LOGGING = {
+ 'version': 1,
+ 'disable_existing_loggers': False,
+ 'formatters': {
+ 'json': {
+ '()': 'pythonjsonlogger.jsonlogger.JsonFormatter',
+ 'format': '%(asctime)s %(created)f %(exc_info)s %(filename)s %(funcName)s %(levelname)s %(levelno)s %(lineno)d %(module)s %(message)s %(pathname)s %(process)s %(processName)s %(relativeCreated)d %(thread)s %(threadName)s'
+ }
+ },
+ 'handlers': {
+ 'splunk': {
+ 'level': 'DEBUG',
+ 'class': 'splunk_handler.SplunkHandler',
+ 'formatter': 'json',
+ 'host': SPLUNK_HOST,
+ 'port': SPLUNK_PORT,
+ 'token': SPLUNK_TOKEN,
+ 'index': SPLUNK_INDEX,
+ 'sourcetype': 'json',
+ },
+ 'console': {
+ 'level': 'DEBUG',
+ 'class': 'logging.StreamHandler',
+ }
+ },
+ 'loggers': {
+ '': {
+ 'handlers': ['console', 'splunk'],
+ 'level': 'DEBUG'
+ }
+ }
+}
+~~~
+
+Here is an example file config, and how it might be used in a config file:
+
+~~~
+[loggers]
+keys=root
+
+[handlers]
+keys=consoleHandler,splunkHandler
+
+[formatters]
+keys=simpleFormatter
+
+[logger_root]
+level=%(loglevel)s
+handlers=consoleHandler,splunkHandler
+
+[handler_consoleHandler]
+class=StreamHandler
+level=%(loglevel)s
+formatter=simpleFormatter
+args=(sys.stdout,)
+
+[handler_splunkHandler]
+class=splunk_handler.SplunkHandler
+level=%(loglevel)s
+formatter=simpleFormatter
+args=('my-splunk-host.me.com', '', os.environ.get('SPLUNK_TOKEN_DEV', 'changeme'), 'my_index')
+kwargs={'url':'https://my-splunk-host.me.com/services/collector/event', 'verify': False, 'record_format': True}
+
+[formatter_simpleFormatter]
+class=pythonjsonlogger.jsonlogger.JsonFormatter
+format=%(asctime)s %(levelname)s %(name)s %(message)s
+
+~~~
+
+## License
+
+This project is licensed under the terms of the [MIT license](http://opensource.org/licenses/MIT).
+
+
+
+
+%package help
+Summary: Development documents and examples for splunk-handler-zuul
+Provides: python3-splunk-handler-zuul-doc
+%description help
+# Splunk Handler
+
+**Splunk Handler is a Python Logger for sending logged events to an installation of Splunk Enterprise.**
+
+*This logger requires the destination Splunk Enterprise server to have enabled and configured the [Splunk HTTP Event Collector](http://dev.splunk.com/view/event-collector/SP-CAAAE6M).*
+
+## A Note on Using with AWS Lambda
+
+[AWS Lambda](https://aws.amazon.com/lambda/) has a custom implementation of Python Threading, and does not signal when the main thread exits. Because of this, it is possible to have Lambda halt execution while logs are still being processed. To ensure that execution does not terminate prematurely, Lambda users will be required to invoke splunk_handler.force_flush directly as the very last call in the Lambda handler, which will block the main thread from exiting until all logs have processed.
+~~~python
+from splunk_handler import force_flush
+
+def lambda_handler(event, context):
+ do_work()
+ force_flush() # Flush logs in a blocking manner
+~~~
+
+## Introduction
+
+This package is based on the splunk_handler of [Zach Tylor](https://github.com/zach-taylor/splunk_handler).
+The adjustment in this package enables json format in event that sent to spunk. Additionally, it is designed to
+suit logging of [zuul components](https://zuul-ci.org/docs/zuul/discussion/components.html). Thus, the source-type
+will reflect the zuul service and the event will contains eventId and buildId within zuul log.
+
+## Installation
+
+Pip:
+
+ pip install splunk_handler_zuul
+
+Manual:
+
+ python setup.py install
+
+## Usage
+
+ from splunk_handler import SplunkHandler
+
+Then use it like any other regular Python [logging handler](https://docs.python.org/2/howto/logging.html#handlers).
+
+Example:
+
+~~~python
+ import logging
+ from splunk_handler import SplunkHandler
+ splunk = SplunkHandler(
+ host='splunk.example.com',
+ port='8088',
+ token='851A5E58-4EF1-7291-F947-F614A76ACB21',
+ index='main',
+ record_format=True # will make the output as json
+ #allow_overrides=True # whether to look for _<param in log data (ex: _index)
+ #debug=True # whether to print module activity to stdout, defaults to False
+ #flush_interval=15.0, # send batch of logs every n sec, defaults to 15.0, set '0' to block thread & send immediately
+ #force_keep_ahead=True # sleep instead of dropping logs when queue fills
+ #hostname='hostname', # manually set a hostname parameter, defaults to socket.gethostname()
+ #protocol='http', # set the protocol which will be used to connect to the splunk host
+ #proxies={
+ # 'http': 'http://10.10.1.10:3128',
+ # 'https': 'http://10.10.1.10:1080',
+ # }, set the proxies for the session request to splunk host
+ #
+ #queue_size=5000, # a throttle to prevent resource overconsumption, defaults to 5000, set to 0 for no max
+ #record_format=True, whether the log format will be json
+ #retry_backoff=1, the requests lib backoff factor, default options will retry for 1 min, defaults to 2.0
+ #retry_count=5, number of retry attempts on a failed/erroring connection, defaults to 5
+ #source='source', # manually set a source, defaults to the log record.pathname
+ #sourcetype='sourcetype', # manually set a sourcetype, defaults to 'text'
+ #verify=True, # turn SSL verification on or off, defaults to True
+ #timeout=60, # timeout for waiting on a 200 OK from Splunk server, defaults to 60s
+ )
+
+ logging.getLogger('').addHandler(splunk)
+
+ logging.warning('hello!')
+~~~
+
+### Logging Config
+
+Sometimes it's a good idea to create a logging configuration using a Python dict
+and the `logging.config.dictConfig` function. This method is used by default in Django.
+
+Here is an example dictionary config and how it might be used in a settings file:
+
+~~~python
+import os
+
+# Splunk settings
+SPLUNK_HOST = os.getenv('SPLUNK_HOST', 'splunk.example.com')
+SPLUNK_PORT = int(os.getenv('SPLUNK_PORT', '8088'))
+SPLUNK_TOKEN = os.getenv('SPLUNK_TOKEN', '851A5E58-4EF1-7291-F947-F614A76ACB21')
+SPLUNK_INDEX = os.getenv('SPLUNK_INDEX', 'main')
+
+LOGGING = {
+ 'version': 1,
+ 'disable_existing_loggers': False,
+ 'formatters': {
+ 'json': {
+ '()': 'pythonjsonlogger.jsonlogger.JsonFormatter',
+ 'format': '%(asctime)s %(created)f %(exc_info)s %(filename)s %(funcName)s %(levelname)s %(levelno)s %(lineno)d %(module)s %(message)s %(pathname)s %(process)s %(processName)s %(relativeCreated)d %(thread)s %(threadName)s'
+ }
+ },
+ 'handlers': {
+ 'splunk': {
+ 'level': 'DEBUG',
+ 'class': 'splunk_handler.SplunkHandler',
+ 'formatter': 'json',
+ 'host': SPLUNK_HOST,
+ 'port': SPLUNK_PORT,
+ 'token': SPLUNK_TOKEN,
+ 'index': SPLUNK_INDEX,
+ 'sourcetype': 'json',
+ },
+ 'console': {
+ 'level': 'DEBUG',
+ 'class': 'logging.StreamHandler',
+ }
+ },
+ 'loggers': {
+ '': {
+ 'handlers': ['console', 'splunk'],
+ 'level': 'DEBUG'
+ }
+ }
+}
+~~~
+
+Here is an example file config, and how it might be used in a config file:
+
+~~~
+[loggers]
+keys=root
+
+[handlers]
+keys=consoleHandler,splunkHandler
+
+[formatters]
+keys=simpleFormatter
+
+[logger_root]
+level=%(loglevel)s
+handlers=consoleHandler,splunkHandler
+
+[handler_consoleHandler]
+class=StreamHandler
+level=%(loglevel)s
+formatter=simpleFormatter
+args=(sys.stdout,)
+
+[handler_splunkHandler]
+class=splunk_handler.SplunkHandler
+level=%(loglevel)s
+formatter=simpleFormatter
+args=('my-splunk-host.me.com', '', os.environ.get('SPLUNK_TOKEN_DEV', 'changeme'), 'my_index')
+kwargs={'url':'https://my-splunk-host.me.com/services/collector/event', 'verify': False, 'record_format': True}
+
+[formatter_simpleFormatter]
+class=pythonjsonlogger.jsonlogger.JsonFormatter
+format=%(asctime)s %(levelname)s %(name)s %(message)s
+
+~~~
+
+## License
+
+This project is licensed under the terms of the [MIT license](http://opensource.org/licenses/MIT).
+
+
+
+
+%prep
+%autosetup -n splunk-handler-zuul-0.1.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-splunk-handler-zuul -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..f5ef427
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+09e98929f844eddfb685c1b7023ec930 splunk_handler_zuul-0.1.0.tar.gz