mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Add millisecond data to splunk callback timestamp (#1462)
* Add millisecond data to timestamp * Add flag to control splunk milliseconds * Update changelogs/fragments/1462-splunk-millisecond.yaml Co-authored-by: Amin Vakil <info@aminvakil.com> * Apply suggestions from code review Co-authored-by: Felix Fontein <felix@fontein.de> * Apply more suggestions from review * Whitespace Co-authored-by: Amin Vakil <info@aminvakil.com> Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
8d9fd52d3d
commit
91272d027b
4 changed files with 90 additions and 3 deletions
|
@ -57,6 +57,17 @@ DOCUMENTATION = '''
|
|||
type: bool
|
||||
default: true
|
||||
version_added: '1.0.0'
|
||||
include_milliseconds:
|
||||
description: Whether to include milliseconds as part of the generated timestamp field in the event
|
||||
sent to the Splunk HTTP collector
|
||||
env:
|
||||
- name: SPLUNK_INCLUDE_MILLISECONDS
|
||||
ini:
|
||||
- section: callback_splunk
|
||||
key: include_milliseconds
|
||||
type: bool
|
||||
default: false
|
||||
version_added: 2.0.0
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
|
@ -96,7 +107,7 @@ class SplunkHTTPCollectorSource(object):
|
|||
self.ip_address = socket.gethostbyname(socket.gethostname())
|
||||
self.user = getpass.getuser()
|
||||
|
||||
def send_event(self, url, authtoken, validate_certs, state, result, runtime):
|
||||
def send_event(self, url, authtoken, validate_certs, include_milliseconds, state, result, runtime):
|
||||
if result._task_fields['args'].get('_ansible_check_mode') is True:
|
||||
self.ansible_check_mode = True
|
||||
|
||||
|
@ -116,8 +127,13 @@ class SplunkHTTPCollectorSource(object):
|
|||
data['uuid'] = result._task._uuid
|
||||
data['session'] = self.session
|
||||
data['status'] = state
|
||||
data['timestamp'] = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S '
|
||||
'+0000')
|
||||
|
||||
if include_milliseconds:
|
||||
time_format = '%Y-%m-%d %H:%M:%S.%f +0000'
|
||||
else:
|
||||
time_format = '%Y-%m-%d %H:%M:%S +0000'
|
||||
|
||||
data['timestamp'] = datetime.utcnow().strftime(time_format)
|
||||
data['host'] = self.host
|
||||
data['ip_address'] = self.ip_address
|
||||
data['user'] = self.user
|
||||
|
@ -158,6 +174,7 @@ class CallbackModule(CallbackBase):
|
|||
self.url = None
|
||||
self.authtoken = None
|
||||
self.validate_certs = None
|
||||
self.include_milliseconds = None
|
||||
self.splunk = SplunkHTTPCollectorSource()
|
||||
|
||||
def _runtime(self, result):
|
||||
|
@ -193,6 +210,8 @@ class CallbackModule(CallbackBase):
|
|||
|
||||
self.validate_certs = self.get_option('validate_certs')
|
||||
|
||||
self.include_milliseconds = self.get_option('include_milliseconds')
|
||||
|
||||
def v2_playbook_on_start(self, playbook):
|
||||
self.splunk.ansible_playbook = basename(playbook._file_name)
|
||||
|
||||
|
@ -207,6 +226,7 @@ class CallbackModule(CallbackBase):
|
|||
self.url,
|
||||
self.authtoken,
|
||||
self.validate_certs,
|
||||
self.include_milliseconds,
|
||||
'OK',
|
||||
result,
|
||||
self._runtime(result)
|
||||
|
@ -217,6 +237,7 @@ class CallbackModule(CallbackBase):
|
|||
self.url,
|
||||
self.authtoken,
|
||||
self.validate_certs,
|
||||
self.include_milliseconds,
|
||||
'SKIPPED',
|
||||
result,
|
||||
self._runtime(result)
|
||||
|
@ -227,6 +248,7 @@ class CallbackModule(CallbackBase):
|
|||
self.url,
|
||||
self.authtoken,
|
||||
self.validate_certs,
|
||||
self.include_milliseconds,
|
||||
'FAILED',
|
||||
result,
|
||||
self._runtime(result)
|
||||
|
@ -237,6 +259,7 @@ class CallbackModule(CallbackBase):
|
|||
self.url,
|
||||
self.authtoken,
|
||||
self.validate_certs,
|
||||
self.include_milliseconds,
|
||||
'FAILED',
|
||||
result,
|
||||
self._runtime(result)
|
||||
|
@ -247,6 +270,7 @@ class CallbackModule(CallbackBase):
|
|||
self.url,
|
||||
self.authtoken,
|
||||
self.validate_certs,
|
||||
self.include_milliseconds,
|
||||
'UNREACHABLE',
|
||||
result,
|
||||
self._runtime(result)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue