From 6a42a6859913f6df6734ecb43904a2865f92f749 Mon Sep 17 00:00:00 2001 From: coreymbe Date: Thu, 12 Aug 2021 16:03:57 -0700 Subject: [PATCH] (PIE-755) Update version and metrics dashboards --- TA-puppet-report-viewer.aob_meta | 2 +- app.manifest | 2 +- default/app.conf | 2 +- default/data/ui/views/metrics.xml | 1964 +++++++++++++++++++++++++++-- 4 files changed, 1884 insertions(+), 86 deletions(-) diff --git a/TA-puppet-report-viewer.aob_meta b/TA-puppet-report-viewer.aob_meta index 43def7b..fb1603b 100644 --- a/TA-puppet-report-viewer.aob_meta +++ b/TA-puppet-report-viewer.aob_meta @@ -1 +1 @@ -{"alert_action_builder": {"modular_alerts": [{"code": "\n# encoding = utf-8\n\ndef process_event(helper, *args, **kwargs):\n \"\"\"\n # IMPORTANT\n # Do not remove the anchor macro:start and macro:end lines.\n # These lines are used to generate sample code. If they are\n # removed, the sample code will not be updated when configurations\n # are updated.\n\n [sample_code_macro:start]\n\n # The following example gets the setup parameters and prints them to the log\n puppet_enterprise_console = helper.get_global_setting(\"puppet_enterprise_console\")\n helper.log_info(\"puppet_enterprise_console={}\".format(puppet_enterprise_console))\n puppet_read_user = helper.get_global_setting(\"puppet_read_user\")\n helper.log_info(\"puppet_read_user={}\".format(puppet_read_user))\n puppet_read_user_pass = helper.get_global_setting(\"puppet_read_user_pass\")\n helper.log_info(\"puppet_read_user_pass={}\".format(puppet_read_user_pass))\n splunk_hec_url = helper.get_global_setting(\"splunk_hec_url\")\n helper.log_info(\"splunk_hec_url={}\".format(splunk_hec_url))\n splunk_hec_token = helper.get_global_setting(\"splunk_hec_token\")\n helper.log_info(\"splunk_hec_token={}\".format(splunk_hec_token))\n bolt_user = helper.get_global_setting(\"bolt_user\")\n helper.log_info(\"bolt_user={}\".format(bolt_user))\n bolt_user_pass = helper.get_global_setting(\"bolt_user_pass\")\n helper.log_info(\"bolt_user_pass={}\".format(bolt_user_pass))\n puppet_bolt_server = helper.get_global_setting(\"puppet_bolt_server\")\n helper.log_info(\"puppet_bolt_server={}\".format(puppet_bolt_server))\n puppet_action_hec_token = helper.get_global_setting(\"puppet_action_hec_token\")\n helper.log_info(\"puppet_action_hec_token={}\".format(puppet_action_hec_token))\n puppet_db_url = helper.get_global_setting(\"puppet_db_url\")\n helper.log_info(\"puppet_db_url={}\".format(puppet_db_url))\n pe_has_access_proxy = helper.get_global_setting(\"pe_has_access_proxy\")\n helper.log_info(\"pe_has_access_proxy={}\".format(pe_has_access_proxy))\n\n # The following example gets the alert action parameters and prints them to the log\n bolt_investigate_target = helper.get_param(\"bolt_investigate_target\")\n helper.log_info(\"bolt_investigate_target={}\".format(bolt_investigate_target))\n\n bolt_investigate_name = helper.get_param(\"bolt_investigate_name\")\n helper.log_info(\"bolt_investigate_name={}\".format(bolt_investigate_name))\n\n\n # The following example adds two sample events (\"hello\", \"world\")\n # and writes them to Splunk\n # NOTE: Call helper.writeevents() only once after all events\n # have been added\n helper.addevent(\"hello\", sourcetype=\"sample_sourcetype\")\n helper.addevent(\"world\", sourcetype=\"sample_sourcetype\")\n helper.writeevents(index=\"summary\", host=\"localhost\", source=\"localhost\")\n\n # The following example gets the events that trigger the alert\n events = helper.get_events()\n for event in events:\n helper.log_info(\"event={}\".format(event))\n\n # helper.settings is a dict that includes environment configuration\n # Example usage: helper.settings[\"server_uri\"]\n helper.log_info(\"server_uri={}\".format(helper.settings[\"server_uri\"]))\n [sample_code_macro:end]\n \"\"\"\n\n helper.log_info(\"Alert action puppet_run_task_investigate started.\")\n\n # TODO: Implement your alert action logic here\n return 0\n", "label": "Run a Bolt Investigative Task", "short_name": "puppet_run_task_investigate", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABL5JREFUWAnNWEtIY1cY/s69N8m9eagtFK1TW7uwUhdKO3QUQepiWmQWQunKWXXVlSDIFGFWlVK6Geimu4JSC+1sBlIXfQ1FFx2wuCzUobSC1Iq1TBLzzk1uTv//5GEeN46mCfjHe8/7P9/5/sdJFGNjY9JxHFwF0XUdBoPJ5/NXAY/CoF0ZJGUgVw6Q4c6QpG4N/K4XCVHf0fGWKyBd0/HyczZQAKRCQECEwGla4CQpqN49Yl0BXQsZ+OFeATJFm4MdngDoAhsPBT74wkDQ4qjsDleuRy1IoiYFPHkChHf68OufJoEjCDYZUSt2DQzb3xUQGYr+ivgtauKdj2JY+zELYRWpV4NodizW0zFxNVllzxd7svj4tg83XiEHt1NIF3g6+Ra8HQPQqMiVIcE0eCWGe3O4ezuBm6+lCJDE29d19PkMFKv+w9Abn8YtLtcWo6OjsjFTWz4N79/sQzFXcuhssYi3Jmy8/tIpDrIB3LpTwAm5mSEp+sp4TMsDXcsrs14Owtlsj8cDV0CgjeycgKMTF7ShpJCXtoPwqh83BhP4KxPCT48kfB6KRBoTpo7PvslSSvBRm5C2Ka0BkUJJHw76kpTyUCZewOaqD9cHEhQOlTGyeo+BW3cN/P4Pg2fK2hMG5OpDrO4MTKkl2TyWF9/+nCP/0gGHADm0XJXEIDPZHo66VS0B1c2iBvMhKG0b5NTdlAtr59PnnTz0Kg3ls1Sp4YGKGduH3JIhVs9+VPIlIGcLTI8ILL7LpqInQGbz03IuAwbdLPVgEokE4vE4stmsKr1er7oPY7HYuWhdGZKUpTOZkhexa+eLBbz5qo4vVwQsZHDv+wC+epiDh9IDi6DIiqSpXsbEaWRnZwfspNvb2xgZGcHU1BRs21bt5eVlpFIpaFozH01hz8wMBnV8vWrBSRfUHrKg4flnkvDpBXz6XQif3M8j1Espocj8laWGId54b28PwWCwMlpXHh8fY3p6WjFWO+AaZeqQdIEOBWJ4wUpi0H+Ka6EovE4ODx6Z+PB+Cj0EhpFwDiKtpadWc009EolgYWEBExMT2NjYUCMDAwNYXFwkK2RqZpaqzZxVptCGv5zo6H/Ph9UHJoRfR5zMYnoNFeKVaU8r19fXsbW1pUy0tLSEg4MDtWR+fl6ZsHH9OYAoxDUJ00rDq/GFqtPVYJMJq0Zq1OXaNgxD+YrKY8Tm7u6umtff3w/LsprWuDq1kHS7U8Z941mJvz+n68AhEFm+1+iuaZ1Lm5RzBzs4f9usyNDQkKomk0nFEEdfrbgyRDcU/ohZeBz3YO9fA48jVFL7OOOj5HymvFZRq/rs7KxiKBqNYm5uDpOTk2oqM+X2e7Apyng2Xe5IpMk8NSdjQ5m6Bq+lP/VLWmOUsWMfHh5ifHxcgeHXzMwMjo6Oqm2ucJS5mozTQ2+wnsrqysu5kAr/4eHhKhhOmCsrK9jf34dpmlW1lYoroMpgJ8pwOAyONDYXg+FEyQy6geH9ug7I7/eDHXhzc1O5AGfnVmC6Coj/ccDSWKrOc15dYYhBrK2tKSY4mjgXXVRco+yii8+bl06nKaNLFTmNuabVupZR1mrBZfrZd9oR18TYjqJOrblygIxKFHTqhP9HD2P5D7xNuyngDwkoAAAAAElFTkSuQmCC", "parameters": [{"help_string": "", "name": "bolt_investigate_target", "type": "", "format_type": "text", "label": "Host", "required": true, "value": "$result.host$", "default_value": "$result.host$"}, {"help_string": "Pick which investigative task to run", "label": "Investigate", "type": "", "possible_values": {"Last Login": "lastlogin", "Running Services": "services", "Open Ports": "ports"}, "format_type": "dropdownlist", "name": "bolt_investigate_name", "required": true, "value": "lastlogin", "default_value": "lastlogin"}], "uuid": "f45cb72c1e9e459c996c77c335e41c73", "description": "Runs a Bolt Investigate Task with Puppet Enterprise"}, {"code": "\n# encoding = utf-8\n\ndef process_event(helper, *args, **kwargs):\n \"\"\"\n # IMPORTANT\n # Do not remove the anchor macro:start and macro:end lines.\n # These lines are used to generate sample code. If they are\n # removed, the sample code will not be updated when configurations\n # are updated.\n\n [sample_code_macro:start]\n\n # The following example gets the setup parameters and prints them to the log\n puppet_enterprise_console = helper.get_global_setting(\"puppet_enterprise_console\")\n helper.log_info(\"puppet_enterprise_console={}\".format(puppet_enterprise_console))\n puppet_read_user = helper.get_global_setting(\"puppet_read_user\")\n helper.log_info(\"puppet_read_user={}\".format(puppet_read_user))\n puppet_read_user_pass = helper.get_global_setting(\"puppet_read_user_pass\")\n helper.log_info(\"puppet_read_user_pass={}\".format(puppet_read_user_pass))\n splunk_hec_url = helper.get_global_setting(\"splunk_hec_url\")\n helper.log_info(\"splunk_hec_url={}\".format(splunk_hec_url))\n splunk_hec_token = helper.get_global_setting(\"splunk_hec_token\")\n helper.log_info(\"splunk_hec_token={}\".format(splunk_hec_token))\n bolt_user = helper.get_global_setting(\"bolt_user\")\n helper.log_info(\"bolt_user={}\".format(bolt_user))\n bolt_user_pass = helper.get_global_setting(\"bolt_user_pass\")\n helper.log_info(\"bolt_user_pass={}\".format(bolt_user_pass))\n puppet_bolt_server = helper.get_global_setting(\"puppet_bolt_server\")\n helper.log_info(\"puppet_bolt_server={}\".format(puppet_bolt_server))\n puppet_action_hec_token = helper.get_global_setting(\"puppet_action_hec_token\")\n helper.log_info(\"puppet_action_hec_token={}\".format(puppet_action_hec_token))\n puppet_db_url = helper.get_global_setting(\"puppet_db_url\")\n helper.log_info(\"puppet_db_url={}\".format(puppet_db_url))\n\n # The following example gets the alert action parameters and prints them to the log\n bolt_act_target = helper.get_param(\"bolt_act_target\")\n helper.log_info(\"bolt_act_target={}\".format(bolt_act_target))\n\n bolt_act_name = helper.get_param(\"bolt_act_name\")\n helper.log_info(\"bolt_act_name={}\".format(bolt_act_name))\n\n\n # The following example adds two sample events (\"hello\", \"world\")\n # and writes them to Splunk\n # NOTE: Call helper.writeevents() only once after all events\n # have been added\n helper.addevent(\"hello\", sourcetype=\"sample_sourcetype\")\n helper.addevent(\"world\", sourcetype=\"sample_sourcetype\")\n helper.writeevents(index=\"summary\", host=\"localhost\", source=\"localhost\")\n\n # The following example gets the events that trigger the alert\n events = helper.get_events()\n for event in events:\n helper.log_info(\"event={}\".format(event))\n\n # helper.settings is a dict that includes environment configuration\n # Example usage: helper.settings[\"server_uri\"]\n helper.log_info(\"server_uri={}\".format(helper.settings[\"server_uri\"]))\n [sample_code_macro:end]\n \"\"\"\n\n helper.log_info(\"Alert action puppet_run_task_act started.\")\n\n # TODO: Implement your alert action logic here\n return 0\n", "label": "Run a Bolt Act Task", "short_name": "puppet_run_task_act", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABL5JREFUWAnNWEtIY1cY/s69N8m9eagtFK1TW7uwUhdKO3QUQepiWmQWQunKWXXVlSDIFGFWlVK6Geimu4JSC+1sBlIXfQ1FFx2wuCzUobSC1Iq1TBLzzk1uTv//5GEeN46mCfjHe8/7P9/5/sdJFGNjY9JxHFwF0XUdBoPJ5/NXAY/CoF0ZJGUgVw6Q4c6QpG4N/K4XCVHf0fGWKyBd0/HyczZQAKRCQECEwGla4CQpqN49Yl0BXQsZ+OFeATJFm4MdngDoAhsPBT74wkDQ4qjsDleuRy1IoiYFPHkChHf68OufJoEjCDYZUSt2DQzb3xUQGYr+ivgtauKdj2JY+zELYRWpV4NodizW0zFxNVllzxd7svj4tg83XiEHt1NIF3g6+Ra8HQPQqMiVIcE0eCWGe3O4ezuBm6+lCJDE29d19PkMFKv+w9Abn8YtLtcWo6OjsjFTWz4N79/sQzFXcuhssYi3Jmy8/tIpDrIB3LpTwAm5mSEp+sp4TMsDXcsrs14Owtlsj8cDV0CgjeycgKMTF7ShpJCXtoPwqh83BhP4KxPCT48kfB6KRBoTpo7PvslSSvBRm5C2Ka0BkUJJHw76kpTyUCZewOaqD9cHEhQOlTGyeo+BW3cN/P4Pg2fK2hMG5OpDrO4MTKkl2TyWF9/+nCP/0gGHADm0XJXEIDPZHo66VS0B1c2iBvMhKG0b5NTdlAtr59PnnTz0Kg3ls1Sp4YGKGduH3JIhVs9+VPIlIGcLTI8ILL7LpqInQGbz03IuAwbdLPVgEokE4vE4stmsKr1er7oPY7HYuWhdGZKUpTOZkhexa+eLBbz5qo4vVwQsZHDv+wC+epiDh9IDi6DIiqSpXsbEaWRnZwfspNvb2xgZGcHU1BRs21bt5eVlpFIpaFozH01hz8wMBnV8vWrBSRfUHrKg4flnkvDpBXz6XQif3M8j1Espocj8laWGId54b28PwWCwMlpXHh8fY3p6WjFWO+AaZeqQdIEOBWJ4wUpi0H+Ka6EovE4ODx6Z+PB+Cj0EhpFwDiKtpadWc009EolgYWEBExMT2NjYUCMDAwNYXFwkK2RqZpaqzZxVptCGv5zo6H/Ph9UHJoRfR5zMYnoNFeKVaU8r19fXsbW1pUy0tLSEg4MDtWR+fl6ZsHH9OYAoxDUJ00rDq/GFqtPVYJMJq0Zq1OXaNgxD+YrKY8Tm7u6umtff3w/LsprWuDq1kHS7U8Z941mJvz+n68AhEFm+1+iuaZ1Lm5RzBzs4f9usyNDQkKomk0nFEEdfrbgyRDcU/ohZeBz3YO9fA48jVFL7OOOj5HymvFZRq/rs7KxiKBqNYm5uDpOTk2oqM+X2e7Apyng2Xe5IpMk8NSdjQ5m6Bq+lP/VLWmOUsWMfHh5ifHxcgeHXzMwMjo6Oqm2ucJS5mozTQ2+wnsrqysu5kAr/4eHhKhhOmCsrK9jf34dpmlW1lYoroMpgJ8pwOAyONDYXg+FEyQy6geH9ug7I7/eDHXhzc1O5AGfnVmC6Coj/ccDSWKrOc15dYYhBrK2tKSY4mjgXXVRco+yii8+bl06nKaNLFTmNuabVupZR1mrBZfrZd9oR18TYjqJOrblygIxKFHTqhP9HD2P5D7xNuyngDwkoAAAAAElFTkSuQmCC", "parameters": [{"help_string": "", "name": "bolt_act_target", "type": "", "format_type": "text", "label": "Host", "required": true, "value": "$result.host$", "default_value": "$result.host$"}, {"help_string": "", "label": "Perform Action", "type": "", "possible_values": {"Restart Service": "service"}, "format_type": "dropdownlist", "name": "bolt_act_name", "required": true, "value": "service", "default_value": "service"}], "uuid": "957e44661131409dafc5cfa15b421f63", "description": "Runs a Bolt Act Task with Puppet Enterprise"}, {"code": "\n# encoding = utf-8\n\ndef process_event(helper, *args, **kwargs):\n \"\"\"\n # IMPORTANT\n # Do not remove the anchor macro:start and macro:end lines.\n # These lines are used to generate sample code. If they are\n # removed, the sample code will not be updated when configurations\n # are updated.\n\n [sample_code_macro:start]\n\n # The following example gets the setup parameters and prints them to the log\n puppet_enterprise_console = helper.get_global_setting(\"puppet_enterprise_console\")\n helper.log_info(\"puppet_enterprise_console={}\".format(puppet_enterprise_console))\n puppet_read_user = helper.get_global_setting(\"puppet_read_user\")\n helper.log_info(\"puppet_read_user={}\".format(puppet_read_user))\n puppet_read_user_pass = helper.get_global_setting(\"puppet_read_user_pass\")\n helper.log_info(\"puppet_read_user_pass={}\".format(puppet_read_user_pass))\n splunk_hec_url = helper.get_global_setting(\"splunk_hec_url\")\n helper.log_info(\"splunk_hec_url={}\".format(splunk_hec_url))\n splunk_hec_token = helper.get_global_setting(\"splunk_hec_token\")\n helper.log_info(\"splunk_hec_token={}\".format(splunk_hec_token))\n bolt_user = helper.get_global_setting(\"bolt_user\")\n helper.log_info(\"bolt_user={}\".format(bolt_user))\n bolt_user_pass = helper.get_global_setting(\"bolt_user_pass\")\n helper.log_info(\"bolt_user_pass={}\".format(bolt_user_pass))\n puppet_bolt_server = helper.get_global_setting(\"puppet_bolt_server\")\n helper.log_info(\"puppet_bolt_server={}\".format(puppet_bolt_server))\n puppet_action_hec_token = helper.get_global_setting(\"puppet_action_hec_token\")\n helper.log_info(\"puppet_action_hec_token={}\".format(puppet_action_hec_token))\n puppet_db_url = helper.get_global_setting(\"puppet_db_url\")\n helper.log_info(\"puppet_db_url={}\".format(puppet_db_url))\n\n # The following example adds two sample events (\"hello\", \"world\")\n # and writes them to Splunk\n # NOTE: Call helper.writeevents() only once after all events\n # have been added\n helper.addevent(\"hello\", sourcetype=\"sample_sourcetype\")\n helper.addevent(\"world\", sourcetype=\"sample_sourcetype\")\n helper.writeevents(index=\"summary\", host=\"localhost\", source=\"localhost\")\n\n # The following example gets the events that trigger the alert\n events = helper.get_events()\n for event in events:\n helper.log_info(\"event={}\".format(event))\n\n # helper.settings is a dict that includes environment configuration\n # Example usage: helper.settings[\"server_uri\"]\n helper.log_info(\"server_uri={}\".format(helper.settings[\"server_uri\"]))\n [sample_code_macro:end]\n \"\"\"\n\n helper.log_info(\"Alert action puppet_generate_detailed_report started.\")\n\n # TODO: Implement your alert action logic here\n return 0\n", "label": "Generate a detailed Puppet report", "short_name": "puppet_generate_detailed_report", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAEyklEQVRYR+2YTWxUVRiGn3Pu/Hb+agKREmMqi2KaSE1IKBAJCwmkBBdoV5p0gYk/daGpLZTEGjGGOpZaSbpQNo1FEExIoCYVg6ZQQE1kwYrGYiIqIVhr0U5/Zu69M8ecMx0Z6kynNLRhwdnM3Dtz5zz3/d7ve2dGVFdXq3Q6zf2wLMtCrF69WjmOcz/w4PV6HwDNWYk5FFIoxMzFuUdljnNHi1HjIkAKS1o8ttwGF5QhyOL9PS35MyEQUi4GT2EPaR0ejXkZ6E6hJkAKF5BgQe8ZScunHsJB3ZX3XquiJauISM53uIz+Jbg4HGLVcpsnHklyeABajnsIBzT2EgKtjArOxx0Gfw6x+fUEbzwj6XpV0Xvaw+5jEArcexjtgaIKrYgKLsYdro1YHPlGsq5KsuXJCT4+7WffCZdQwLd0HtI7VcTgwocOKuEi/C7K9aJsxbXxENvfcUkhkTNm/z/ZwtUrqlDQL3lpSznplINAkEwrttTYrK38h1+nQ2xvcRlxFZ7MjJOUIhD0IqWe+NaC1SsKpJTCTkFGZttdCYFKpTn5bhnrVo7z+1SUb7/L4PNmM1AEPXSfTDIy6UcJDbUwlUoMxtkfK0gmXPr2+Vm7IqHnwYwSEqIW2/d6+WlEs2QH6ELWXWaZIuVavPyUTdvzaUjlWl9AxENdm8Xw0gJlsB0vjU+n2VufglQmOzB1eaIWdW95lhZIp9tUUtG0FXY/50BKswhQCqJe6tokwyNicUp22wUzgaoESQdqVyk+a4YyZYPPYzLOrKiPHW8qhv647aHx8XHzks/nw7Ztli1bhv7edevWLcrLywtarKCHzBYqw/RU7m4lTsZl8+MWh1sFQTVNZ3+II2dSeP3S9JMWamzKIq2rCAbg3LlzZvIODAxQVVXF+vXrzfmzZ8/S1NTE5OQkclZIFwWqCFsc2xckPaWDVYErqXhoEp90+eh0hPZjDuFYGjEDkO39262uNx4aGiIcDhdU4ubNm2zcuBGRd82c0VERFVz4wMFN6FmUNp3sERlO/BjixU9slsc8uWIV3DAfaGxsjMbGRq5cuUJzczMNDQ3mms7OTg4cOEBZWdl/n1E87TVQ3OHiLxY79ghe2wHvNaTo+SpE6xduybTPB9KbdnR0EIlEGB0d5fLly1RWVnL16lU2bNhALBabJ9D7Dj/8Jnm2LckrW728/YKk92vB7uOiZNrnAx08eJB4PE4wGDSGPnToEPX19SQSCaqrq43pc6uoQisjksG4bb6gCZ9AZXSEuBwe9LDnc4uyoDFN0WE8W6Guri4CgYAB6u/vp7a2Fu2jmpoao9ycQLrLHo5IevdaONrU2bZDeKDvew+dX6aJ+LWb5wd06dIldu7cycTEBHV1dRw9etTs39fXx65du+ZTMkUmI0hM2Xd0geYKWBJf0CoZV/kK6aDWyly/fp01a9agj3V3bdq0iRs3btyh8l1m2fzjMh9It782sS6ZBtEDs7W1lVOnTplz+WtJgNrb2+np6WHbtm2mbHowauDZMHPOoflrUfidhbrM3L0Q6N/vxdaiKjQ8PGxavbu7m/3795vnpdaiAel/U1paWkxZBgcHTZ7pzUqtRQPSG+vwzPkif/jNBbWoQKXUKPT6A6BSqhmF7re/9P4FOOuQpa0DAR0AAAAASUVORK5CYII=", "parameters": [], "uuid": "072c18b4c3e949c08d8078614d989751", "description": "Provided a puppet:summary report this will generate a detailed report of the same Puppet run"}, {"code": "\n# encoding = utf-8\n\ndef process_event(helper, *args, **kwargs):\n \"\"\"\n # IMPORTANT\n # Do not remove the anchor macro:start and macro:end lines.\n # These lines are used to generate sample code. If they are\n # removed, the sample code will not be updated when configurations\n # are updated.\n\n [sample_code_macro:start]\n\n # The following example gets the setup parameters and prints them to the log\n puppet_enterprise_console = helper.get_global_setting(\"puppet_enterprise_console\")\n helper.log_info(\"puppet_enterprise_console={}\".format(puppet_enterprise_console))\n puppet_read_user = helper.get_global_setting(\"puppet_read_user\")\n helper.log_info(\"puppet_read_user={}\".format(puppet_read_user))\n puppet_read_user_pass = helper.get_global_setting(\"puppet_read_user_pass\")\n helper.log_info(\"puppet_read_user_pass={}\".format(puppet_read_user_pass))\n splunk_hec_url = helper.get_global_setting(\"splunk_hec_url\")\n helper.log_info(\"splunk_hec_url={}\".format(splunk_hec_url))\n splunk_hec_token = helper.get_global_setting(\"splunk_hec_token\")\n helper.log_info(\"splunk_hec_token={}\".format(splunk_hec_token))\n bolt_user = helper.get_global_setting(\"bolt_user\")\n helper.log_info(\"bolt_user={}\".format(bolt_user))\n bolt_user_pass = helper.get_global_setting(\"bolt_user_pass\")\n helper.log_info(\"bolt_user_pass={}\".format(bolt_user_pass))\n puppet_bolt_server = helper.get_global_setting(\"puppet_bolt_server\")\n helper.log_info(\"puppet_bolt_server={}\".format(puppet_bolt_server))\n puppet_action_hec_token = helper.get_global_setting(\"puppet_action_hec_token\")\n helper.log_info(\"puppet_action_hec_token={}\".format(puppet_action_hec_token))\n puppet_db_url = helper.get_global_setting(\"puppet_db_url\")\n helper.log_info(\"puppet_db_url={}\".format(puppet_db_url))\n\n # The following example gets the alert action parameters and prints them to the log\n bolt_target = helper.get_param(\"bolt_target\")\n helper.log_info(\"bolt_target={}\".format(bolt_target))\n\n task_name = helper.get_param(\"task_name\")\n helper.log_info(\"task_name={}\".format(task_name))\n\n task_parameters = helper.get_param(\"task_parameters\")\n helper.log_info(\"task_parameters={}\".format(task_parameters))\n\n puppet_environment = helper.get_param(\"puppet_environment\")\n helper.log_info(\"puppet_environment={}\".format(puppet_environment))\n\n task_timeout = helper.get_param(\"task_timeout\")\n helper.log_info(\"task_timeout={}\".format(task_timeout))\n\n\n # The following example adds two sample events (\"hello\", \"world\")\n # and writes them to Splunk\n # NOTE: Call helper.writeevents() only once after all events\n # have been added\n helper.addevent(\"hello\", sourcetype=\"sample_sourcetype\")\n helper.addevent(\"world\", sourcetype=\"sample_sourcetype\")\n helper.writeevents(index=\"summary\", host=\"localhost\", source=\"localhost\")\n\n # The following example gets the events that trigger the alert\n events = helper.get_events()\n for event in events:\n helper.log_info(\"event={}\".format(event))\n\n # helper.settings is a dict that includes environment configuration\n # Example usage: helper.settings[\"server_uri\"]\n helper.log_info(\"server_uri={}\".format(helper.settings[\"server_uri\"]))\n [sample_code_macro:end]\n \"\"\"\n\n helper.log_info(\"Alert action puppet_run_task started.\")\n\n # TODO: Implement your alert action logic here\n return 0\n", "label": "Run a Bolt Task", "short_name": "puppet_run_task", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABL5JREFUWAnNWEtIY1cY/s69N8m9eagtFK1TW7uwUhdKO3QUQepiWmQWQunKWXXVlSDIFGFWlVK6Geimu4JSC+1sBlIXfQ1FFx2wuCzUobSC1Iq1TBLzzk1uTv//5GEeN46mCfjHe8/7P9/5/sdJFGNjY9JxHFwF0XUdBoPJ5/NXAY/CoF0ZJGUgVw6Q4c6QpG4N/K4XCVHf0fGWKyBd0/HyczZQAKRCQECEwGla4CQpqN49Yl0BXQsZ+OFeATJFm4MdngDoAhsPBT74wkDQ4qjsDleuRy1IoiYFPHkChHf68OufJoEjCDYZUSt2DQzb3xUQGYr+ivgtauKdj2JY+zELYRWpV4NodizW0zFxNVllzxd7svj4tg83XiEHt1NIF3g6+Ra8HQPQqMiVIcE0eCWGe3O4ezuBm6+lCJDE29d19PkMFKv+w9Abn8YtLtcWo6OjsjFTWz4N79/sQzFXcuhssYi3Jmy8/tIpDrIB3LpTwAm5mSEp+sp4TMsDXcsrs14Owtlsj8cDV0CgjeycgKMTF7ShpJCXtoPwqh83BhP4KxPCT48kfB6KRBoTpo7PvslSSvBRm5C2Ka0BkUJJHw76kpTyUCZewOaqD9cHEhQOlTGyeo+BW3cN/P4Pg2fK2hMG5OpDrO4MTKkl2TyWF9/+nCP/0gGHADm0XJXEIDPZHo66VS0B1c2iBvMhKG0b5NTdlAtr59PnnTz0Kg3ls1Sp4YGKGduH3JIhVs9+VPIlIGcLTI8ILL7LpqInQGbz03IuAwbdLPVgEokE4vE4stmsKr1er7oPY7HYuWhdGZKUpTOZkhexa+eLBbz5qo4vVwQsZHDv+wC+epiDh9IDi6DIiqSpXsbEaWRnZwfspNvb2xgZGcHU1BRs21bt5eVlpFIpaFozH01hz8wMBnV8vWrBSRfUHrKg4flnkvDpBXz6XQif3M8j1Espocj8laWGId54b28PwWCwMlpXHh8fY3p6WjFWO+AaZeqQdIEOBWJ4wUpi0H+Ka6EovE4ODx6Z+PB+Cj0EhpFwDiKtpadWc009EolgYWEBExMT2NjYUCMDAwNYXFwkK2RqZpaqzZxVptCGv5zo6H/Ph9UHJoRfR5zMYnoNFeKVaU8r19fXsbW1pUy0tLSEg4MDtWR+fl6ZsHH9OYAoxDUJ00rDq/GFqtPVYJMJq0Zq1OXaNgxD+YrKY8Tm7u6umtff3w/LsprWuDq1kHS7U8Z941mJvz+n68AhEFm+1+iuaZ1Lm5RzBzs4f9usyNDQkKomk0nFEEdfrbgyRDcU/ohZeBz3YO9fA48jVFL7OOOj5HymvFZRq/rs7KxiKBqNYm5uDpOTk2oqM+X2e7Apyng2Xe5IpMk8NSdjQ5m6Bq+lP/VLWmOUsWMfHh5ifHxcgeHXzMwMjo6Oqm2ucJS5mozTQ2+wnsrqysu5kAr/4eHhKhhOmCsrK9jf34dpmlW1lYoroMpgJ8pwOAyONDYXg+FEyQy6geH9ug7I7/eDHXhzc1O5AGfnVmC6Coj/ccDSWKrOc15dYYhBrK2tKSY4mjgXXVRco+yii8+bl06nKaNLFTmNuabVupZR1mrBZfrZd9oR18TYjqJOrblygIxKFHTqhP9HD2P5D7xNuyngDwkoAAAAAElFTkSuQmCC", "parameters": [{"help_string": "", "name": "bolt_target", "type": "", "format_type": "text", "label": "Host", "required": true, "value": "$result.host$", "default_value": "$result.host$"}, {"help_string": "Bolt Task to run", "name": "task_name", "type": "", "format_type": "text", "label": "Task", "required": true, "value": "", "default_value": ""}, {"help_string": "Additional parameters to pass to Bolt Task along with alert contents", "name": "task_parameters", "type": "", "format_type": "text", "label": "Task Parameters", "required": false, "value": "", "default_value": ""}, {"help_string": "Puppet environment where task resides", "name": "puppet_environment", "type": "", "format_type": "text", "label": "Puppet Environment", "required": false, "value": "production", "default_value": "production"}, {"help_string": "Amount of time in seconds before the task times out. If not set defaults to 360 seconds.", "name": "task_timeout", "type": "", "format_type": "text", "label": "Timeout", "required": false, "value": "", "default_value": ""}], "uuid": "0306f882c5d3401bbc2ee5d450f63dcb", "description": "Runs a Bolt Task with Puppet Enterprise"}]}, "basic_builder": {"appname": "TA-puppet-report-viewer", "friendly_name": "Puppet Report Viewer", "version": "3.0.1", "author": "Puppet, Inc.", "description": "", "theme": "#000000", "large_icon": "iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAFhUlEQVR4Xu2baUhcVxTH/2+cmURTnamxqVOFUMctLqGgxqqtIm7F9oNUTFpssHSDiEOpGFrQDwG10FLBFkstLhjaICiBYpGi2FaE+qFudYEuxkpCrPuWOGbcMuWO0Tp9y7xFW33e+1HPve+en/9z3jn3XRn7TZMdCsY7XyyjpmNVwQqHeypDAQn/gSggFwKmgCggZTmOU0G9YxsYur3htLKGYfB6sjvraccySX/w1X189M2KEwydG7DeZKKACAEK6B8dcIYYBUQBic7cVEFyXvN357cwtfTQaSrDAFEBOpqkRWvvkeGxfM1LgbS6ZsfLHy+i7Zc1KdOOjK3iVmPH0wvvz6HnlnNxeWQoCGx03wABDM6/N4vhO+qCxPxR9YSk86ATWgZPebtB68aFnUGoZQa//7WpBvE4fGAASAJk9tWi5ooB8aE6EFjswSDq6iz6/1SHkiQDIkAiz+pQ9qonEsP0MJ5iQ1qyPsRLHy7ip9/Wj7ySZAEiXgebtLjyggdeSXCH7+MaFojbs1sovnFfEqBfJzYPnfJkAyKe+xo1uJzkjndfPAW/05xJSRKgT1qsuHr9nqQ5B22sCBDZ3GMnGbyW5I5rFz3xpJGtJCkOqBIQAXBCx+BSwkl89qYBBg+uxC0Ok2oBEfc1GuDOl2fg5y0/1FQNiEC6W0MBCcYKBeQilVBAFJC4tw2fFVUQVRBV0L8JKK6k9y5IQ0xAYNGBOnxX7A0fL/nthmoLxYRQPa5bjDD7yq+iCXtVAnr+nB5Vbxtw/qxWWQJTI6DnzulRkeeFC0Hs72VyaB2EgsLDw5GUlARPT0/WlmZnZ1FfXy+4VdlJ+tlgnQNOfKie9YAVmx1lzc63Q8QA+/nWOn4cEXcKmZGRgeTkZM5lJyYm0NHRgby8PERERCAxMZET0NzcHOrq6tDf34+mpibOtWQBeuZpHare8gLJPVzj8qdL+LrrgRgmsm3KyspQXFzMOZ843tfXBwJRzBgdHUVnZ6cDEgG7d0gGFGTSosFiQHwIN5yLFYto7raJ2ZciGyFAchceHBxEfn4+uru7d5dgvr92WtJXDS8PBtFm7pxz6REcSQvK9OYgAJGtjIyMIDc3F0NDQ46d7duHw9zKJTR3P8DGlkyPJU47KEBkGySpd3V17R+gNz5fwo0uG9Y3/wvtbJM8SEDT09OIi4vD+Pi4cgVZau+hus2KTefbMhL1IN1cDKCGhgZYLBbW4gsLC9DphEuT4OBgkOStOMT+r+svQoDsdjtaWlqQlZXFS97HxweTk5PQavkLXFI7cQIidYzV5hwu5ALVGQO7zzqMgHp7exETEyMoS4ZhEBUVhZ6eHl47XkBH4RKnkILEACJUwsLCMDAwAL2eu2SJjo7mVtBxAeTn5+doNdLT0zlVREL1yF7i3A8FESppaWlob2/nDTMKSA6gb3vX8MOw851DjYZBRR67Iz6qSXpHMrIUJKUqoYBc0KKAVAzI398fpNpOSUnh9JJU3KqspMXWQeQwbXh4mFcCmZmZ6gRktVpRXV2NoqIiXueNRqOjY4+MjBSupINMWkUt+MzyFpZXFS0h5Z2wa+uqWSWQKisrUVJSwrn+2NgYAgICBJ/taDWkXgOW5c0BTHIFiDzSZrNhZWUFMzMzaGtrQ2pqKkym7f+aJM2q0IiNjXX0aaoGtBeAo20gHbeIQWxDQkK2jzvUrCARLFgmJDRJb7ZzLk0B7UE0Pz/v+FTU2tq6+1NVAiIqIIdhgYGBokU0NTWFwsJCNDY2Os1RJSBSBxUUFKC0tNTxpjKbzbygiGp2PhzW1tay7FQLaOdEMTs7Gzk5ObyASKFYXl7O+3vVAxIdYzyGFJALghQQBaQsyKiCqIKoglgExJ4HiUFHQ4yGmBid8Nv8DQU6b+fFZyyIAAAAAElFTkSuQmCC", "small_icon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAACS0lEQVRYR2P8v1byPwMewBj8HJ801eUYRx1EIExRQggWPROT+RjyvLjBWgc0ygadg1wb34FDJduDiyHAnGPgQwhb9Eb0fWBYefQ71XMTLgMJ5jKQxugJHxiWHaaPoxiDzDmwlkO53twMDtpscI8EdL5n2HjqB81DipGBgQFnwTg3S4AhyZkT7gjLyjcMJ279pqmj8DoIZLO/KTvDhgohgo6gVvFA0EEgl8Q6cDIsyhXA6yi6OijShpNhWeGog3DHyGgIEcpCd6eJMSiJMw+ORP1hsQQDPxcoM+IHdMllX5dJMHCxQxzz7ed/Bu6oF4TchSL//z9qmXvnzh0GFRUVDDOEhYUZ3r2DVOyMpiqsWEvq2Zn8DPoKrGBF7778YxCOf0mSY0CK0R2EzwBtbW2Ga9euMRCsXD99/8/AH0NayMAsJsVB9+7dY1BWVibsIErSBrqDpk+fzpCVlQV2r4WFBcPMmTMZ9PT04AHn7e2N6qDEKR/AktF2nAwueuyQOKWg14HuIEZG1MzBzMzM8OfPH7iDQA6kaZuakINALrl16xaDqqoq3FED7qCLFy+iRBvBRE3LKAMFy6BzEHK0PnnyhIFxbZkg3q50cNd7kssfXNk+NzeXYcqUKXDz9u3bx+Do6IiaqPE1Ycl2CVQjtnIIJHb69GkGMzMzDONBuZCoFiO5DiOlYAwKCmJYv349fR30+PFjBllZWQz/ubi4MOzduxdS7tEzykBRoqCggOKgZ8+eMfz69QtRDtHbQYSin+4hNOog5BAgpi5DDzEADvEYHk3zgtIAAAAASUVORK5CYII=", "visible": true, "tab_version": "3.0.1", "tab_build_no": "2", "build_no": 4}, "field_extraction_builder": {"puppet:facts": {"is_parsed": true, "data_format": "json"}, "puppet:detailed": {"is_parsed": true, "data_format": "json"}, "puppet:summary": {"is_parsed": true, "data_format": "json"}, "puppet:bolt": {"is_parsed": true, "data_format": "json"}}, "global_settings_builder": {"global_settings": {"customized_settings": [{"help_string": "URL to access the Puppet Enterprise console", "label": "Puppet Enterprise Console", "type": "text", "format_type": "text", "internal_name": "", "required": true, "default_value": "https://puppet.company.internal", "name": "puppet_enterprise_console", "value": "https://puppet.company.internal"}, {"help_string": "Puppet Enterprise User with PuppetDB Access", "label": "Username", "type": "text", "format_type": "text", "internal_name": "", "required": true, "default_value": "splunk", "name": "puppet_read_user", "value": "splunk"}, {"help_string": "", "label": "Password", "type": "password", "format_type": "password", "internal_name": "", "required": true, "default_value": "", "name": "puppet_read_user_pass", "value": ""}, {"help_string": "URL to HEC services collector", "label": "Splunk HEC URL", "type": "text", "format_type": "text", "internal_name": "", "required": true, "default_value": "https://splunk.company.internal:8088/services/collector", "name": "splunk_hec_url", "value": "https://splunk.company.internal:8088/services/collector"}, {"help_string": "Token from HEC configured with puppet:summary or puppet:detailed sourcetype", "label": "HEC Token", "type": "text", "format_type": "text", "internal_name": "", "required": true, "default_value": "", "name": "splunk_hec_token", "value": ""}, {"help_string": "Puppet Enterprise User with Bolt Task Access (if different from PuppetDB)", "label": "Bolt User", "type": "text", "format_type": "text", "internal_name": "", "required": false, "default_value": "", "name": "bolt_user", "value": ""}, {"help_string": "", "label": "Bolt Password", "type": "password", "format_type": "password", "internal_name": "", "required": false, "default_value": "", "name": "bolt_user_pass", "value": ""}, {"help_string": "Puppet Enterprise Orchestrator URL (derived from PE Console by default)", "label": "Orch. Services URL", "type": "text", "format_type": "text", "internal_name": "", "required": false, "default_value": "", "name": "puppet_bolt_server", "value": ""}, {"help_string": "Provide token if using dedicated HEC for the puppet:action sourcetype", "label": "Bolt Action Token", "type": "text", "format_type": "text", "internal_name": "", "required": false, "default_value": "", "name": "puppet_action_hec_token", "value": ""}, {"help_string": "URL to access PuppetDB (derived from PE Console by default)", "label": "PuppetDB URL", "type": "text", "format_type": "text", "internal_name": "", "required": false, "default_value": "", "name": "puppet_db_url", "value": ""}]}}, "sourcetype_builder": {"puppet:detailed": {"metadata": {"event_count": 0, "cims_count": 0, "extractions_count": 0, "data_input_name": null}}, "puppet:action": {"metadata": {"event_count": 0, "cims_count": 0, "extractions_count": 0, "data_input_name": null}}, "puppet:summary": {"metadata": {"event_count": 0, "cims_count": 0, "extractions_count": 0, "data_input_name": null}}, "puppet:bolt": {"metadata": {"event_count": 0, "cims_count": 0, "extractions_count": 0, "data_input_name": null}}}, "validation": {"validators": ["best_practice_validation", "data_model_mapping_validation", "field_extract_validation", "app_cert_validation"], "status": "job_finished", "validation_id": "v_1584584836_63", "progress": 1.0}} \ No newline at end of file +{"alert_action_builder": {"modular_alerts": [{"code": "\n# encoding = utf-8\n\ndef process_event(helper, *args, **kwargs):\n \"\"\"\n # IMPORTANT\n # Do not remove the anchor macro:start and macro:end lines.\n # These lines are used to generate sample code. If they are\n # removed, the sample code will not be updated when configurations\n # are updated.\n\n [sample_code_macro:start]\n\n # The following example gets the setup parameters and prints them to the log\n puppet_enterprise_console = helper.get_global_setting(\"puppet_enterprise_console\")\n helper.log_info(\"puppet_enterprise_console={}\".format(puppet_enterprise_console))\n puppet_read_user = helper.get_global_setting(\"puppet_read_user\")\n helper.log_info(\"puppet_read_user={}\".format(puppet_read_user))\n puppet_read_user_pass = helper.get_global_setting(\"puppet_read_user_pass\")\n helper.log_info(\"puppet_read_user_pass={}\".format(puppet_read_user_pass))\n splunk_hec_url = helper.get_global_setting(\"splunk_hec_url\")\n helper.log_info(\"splunk_hec_url={}\".format(splunk_hec_url))\n splunk_hec_token = helper.get_global_setting(\"splunk_hec_token\")\n helper.log_info(\"splunk_hec_token={}\".format(splunk_hec_token))\n bolt_user = helper.get_global_setting(\"bolt_user\")\n helper.log_info(\"bolt_user={}\".format(bolt_user))\n bolt_user_pass = helper.get_global_setting(\"bolt_user_pass\")\n helper.log_info(\"bolt_user_pass={}\".format(bolt_user_pass))\n puppet_bolt_server = helper.get_global_setting(\"puppet_bolt_server\")\n helper.log_info(\"puppet_bolt_server={}\".format(puppet_bolt_server))\n puppet_action_hec_token = helper.get_global_setting(\"puppet_action_hec_token\")\n helper.log_info(\"puppet_action_hec_token={}\".format(puppet_action_hec_token))\n puppet_db_url = helper.get_global_setting(\"puppet_db_url\")\n helper.log_info(\"puppet_db_url={}\".format(puppet_db_url))\n pe_has_access_proxy = helper.get_global_setting(\"pe_has_access_proxy\")\n helper.log_info(\"pe_has_access_proxy={}\".format(pe_has_access_proxy))\n\n # The following example gets the alert action parameters and prints them to the log\n bolt_investigate_target = helper.get_param(\"bolt_investigate_target\")\n helper.log_info(\"bolt_investigate_target={}\".format(bolt_investigate_target))\n\n bolt_investigate_name = helper.get_param(\"bolt_investigate_name\")\n helper.log_info(\"bolt_investigate_name={}\".format(bolt_investigate_name))\n\n\n # The following example adds two sample events (\"hello\", \"world\")\n # and writes them to Splunk\n # NOTE: Call helper.writeevents() only once after all events\n # have been added\n helper.addevent(\"hello\", sourcetype=\"sample_sourcetype\")\n helper.addevent(\"world\", sourcetype=\"sample_sourcetype\")\n helper.writeevents(index=\"summary\", host=\"localhost\", source=\"localhost\")\n\n # The following example gets the events that trigger the alert\n events = helper.get_events()\n for event in events:\n helper.log_info(\"event={}\".format(event))\n\n # helper.settings is a dict that includes environment configuration\n # Example usage: helper.settings[\"server_uri\"]\n helper.log_info(\"server_uri={}\".format(helper.settings[\"server_uri\"]))\n [sample_code_macro:end]\n \"\"\"\n\n helper.log_info(\"Alert action puppet_run_task_investigate started.\")\n\n # TODO: Implement your alert action logic here\n return 0\n", "label": "Run a Bolt Investigative Task", "short_name": "puppet_run_task_investigate", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABL5JREFUWAnNWEtIY1cY/s69N8m9eagtFK1TW7uwUhdKO3QUQepiWmQWQunKWXXVlSDIFGFWlVK6Geimu4JSC+1sBlIXfQ1FFx2wuCzUobSC1Iq1TBLzzk1uTv//5GEeN46mCfjHe8/7P9/5/sdJFGNjY9JxHFwF0XUdBoPJ5/NXAY/CoF0ZJGUgVw6Q4c6QpG4N/K4XCVHf0fGWKyBd0/HyczZQAKRCQECEwGla4CQpqN49Yl0BXQsZ+OFeATJFm4MdngDoAhsPBT74wkDQ4qjsDleuRy1IoiYFPHkChHf68OufJoEjCDYZUSt2DQzb3xUQGYr+ivgtauKdj2JY+zELYRWpV4NodizW0zFxNVllzxd7svj4tg83XiEHt1NIF3g6+Ra8HQPQqMiVIcE0eCWGe3O4ezuBm6+lCJDE29d19PkMFKv+w9Abn8YtLtcWo6OjsjFTWz4N79/sQzFXcuhssYi3Jmy8/tIpDrIB3LpTwAm5mSEp+sp4TMsDXcsrs14Owtlsj8cDV0CgjeycgKMTF7ShpJCXtoPwqh83BhP4KxPCT48kfB6KRBoTpo7PvslSSvBRm5C2Ka0BkUJJHw76kpTyUCZewOaqD9cHEhQOlTGyeo+BW3cN/P4Pg2fK2hMG5OpDrO4MTKkl2TyWF9/+nCP/0gGHADm0XJXEIDPZHo66VS0B1c2iBvMhKG0b5NTdlAtr59PnnTz0Kg3ls1Sp4YGKGduH3JIhVs9+VPIlIGcLTI8ILL7LpqInQGbz03IuAwbdLPVgEokE4vE4stmsKr1er7oPY7HYuWhdGZKUpTOZkhexa+eLBbz5qo4vVwQsZHDv+wC+epiDh9IDi6DIiqSpXsbEaWRnZwfspNvb2xgZGcHU1BRs21bt5eVlpFIpaFozH01hz8wMBnV8vWrBSRfUHrKg4flnkvDpBXz6XQif3M8j1Espocj8laWGId54b28PwWCwMlpXHh8fY3p6WjFWO+AaZeqQdIEOBWJ4wUpi0H+Ka6EovE4ODx6Z+PB+Cj0EhpFwDiKtpadWc009EolgYWEBExMT2NjYUCMDAwNYXFwkK2RqZpaqzZxVptCGv5zo6H/Ph9UHJoRfR5zMYnoNFeKVaU8r19fXsbW1pUy0tLSEg4MDtWR+fl6ZsHH9OYAoxDUJ00rDq/GFqtPVYJMJq0Zq1OXaNgxD+YrKY8Tm7u6umtff3w/LsprWuDq1kHS7U8Z941mJvz+n68AhEFm+1+iuaZ1Lm5RzBzs4f9usyNDQkKomk0nFEEdfrbgyRDcU/ohZeBz3YO9fA48jVFL7OOOj5HymvFZRq/rs7KxiKBqNYm5uDpOTk2oqM+X2e7Apyng2Xe5IpMk8NSdjQ5m6Bq+lP/VLWmOUsWMfHh5ifHxcgeHXzMwMjo6Oqm2ucJS5mozTQ2+wnsrqysu5kAr/4eHhKhhOmCsrK9jf34dpmlW1lYoroMpgJ8pwOAyONDYXg+FEyQy6geH9ug7I7/eDHXhzc1O5AGfnVmC6Coj/ccDSWKrOc15dYYhBrK2tKSY4mjgXXVRco+yii8+bl06nKaNLFTmNuabVupZR1mrBZfrZd9oR18TYjqJOrblygIxKFHTqhP9HD2P5D7xNuyngDwkoAAAAAElFTkSuQmCC", "parameters": [{"help_string": "", "name": "bolt_investigate_target", "type": "", "format_type": "text", "label": "Host", "required": true, "value": "$result.host$", "default_value": "$result.host$"}, {"help_string": "Pick which investigative task to run", "label": "Investigate", "type": "", "possible_values": {"Last Login": "lastlogin", "Running Services": "services", "Open Ports": "ports"}, "format_type": "dropdownlist", "name": "bolt_investigate_name", "required": true, "value": "lastlogin", "default_value": "lastlogin"}], "uuid": "f45cb72c1e9e459c996c77c335e41c73", "description": "Runs a Bolt Investigate Task with Puppet Enterprise"}, {"code": "\n# encoding = utf-8\n\ndef process_event(helper, *args, **kwargs):\n \"\"\"\n # IMPORTANT\n # Do not remove the anchor macro:start and macro:end lines.\n # These lines are used to generate sample code. If they are\n # removed, the sample code will not be updated when configurations\n # are updated.\n\n [sample_code_macro:start]\n\n # The following example gets the setup parameters and prints them to the log\n puppet_enterprise_console = helper.get_global_setting(\"puppet_enterprise_console\")\n helper.log_info(\"puppet_enterprise_console={}\".format(puppet_enterprise_console))\n puppet_read_user = helper.get_global_setting(\"puppet_read_user\")\n helper.log_info(\"puppet_read_user={}\".format(puppet_read_user))\n puppet_read_user_pass = helper.get_global_setting(\"puppet_read_user_pass\")\n helper.log_info(\"puppet_read_user_pass={}\".format(puppet_read_user_pass))\n splunk_hec_url = helper.get_global_setting(\"splunk_hec_url\")\n helper.log_info(\"splunk_hec_url={}\".format(splunk_hec_url))\n splunk_hec_token = helper.get_global_setting(\"splunk_hec_token\")\n helper.log_info(\"splunk_hec_token={}\".format(splunk_hec_token))\n bolt_user = helper.get_global_setting(\"bolt_user\")\n helper.log_info(\"bolt_user={}\".format(bolt_user))\n bolt_user_pass = helper.get_global_setting(\"bolt_user_pass\")\n helper.log_info(\"bolt_user_pass={}\".format(bolt_user_pass))\n puppet_bolt_server = helper.get_global_setting(\"puppet_bolt_server\")\n helper.log_info(\"puppet_bolt_server={}\".format(puppet_bolt_server))\n puppet_action_hec_token = helper.get_global_setting(\"puppet_action_hec_token\")\n helper.log_info(\"puppet_action_hec_token={}\".format(puppet_action_hec_token))\n puppet_db_url = helper.get_global_setting(\"puppet_db_url\")\n helper.log_info(\"puppet_db_url={}\".format(puppet_db_url))\n\n # The following example gets the alert action parameters and prints them to the log\n bolt_act_target = helper.get_param(\"bolt_act_target\")\n helper.log_info(\"bolt_act_target={}\".format(bolt_act_target))\n\n bolt_act_name = helper.get_param(\"bolt_act_name\")\n helper.log_info(\"bolt_act_name={}\".format(bolt_act_name))\n\n\n # The following example adds two sample events (\"hello\", \"world\")\n # and writes them to Splunk\n # NOTE: Call helper.writeevents() only once after all events\n # have been added\n helper.addevent(\"hello\", sourcetype=\"sample_sourcetype\")\n helper.addevent(\"world\", sourcetype=\"sample_sourcetype\")\n helper.writeevents(index=\"summary\", host=\"localhost\", source=\"localhost\")\n\n # The following example gets the events that trigger the alert\n events = helper.get_events()\n for event in events:\n helper.log_info(\"event={}\".format(event))\n\n # helper.settings is a dict that includes environment configuration\n # Example usage: helper.settings[\"server_uri\"]\n helper.log_info(\"server_uri={}\".format(helper.settings[\"server_uri\"]))\n [sample_code_macro:end]\n \"\"\"\n\n helper.log_info(\"Alert action puppet_run_task_act started.\")\n\n # TODO: Implement your alert action logic here\n return 0\n", "label": "Run a Bolt Act Task", "short_name": "puppet_run_task_act", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABL5JREFUWAnNWEtIY1cY/s69N8m9eagtFK1TW7uwUhdKO3QUQepiWmQWQunKWXXVlSDIFGFWlVK6Geimu4JSC+1sBlIXfQ1FFx2wuCzUobSC1Iq1TBLzzk1uTv//5GEeN46mCfjHe8/7P9/5/sdJFGNjY9JxHFwF0XUdBoPJ5/NXAY/CoF0ZJGUgVw6Q4c6QpG4N/K4XCVHf0fGWKyBd0/HyczZQAKRCQECEwGla4CQpqN49Yl0BXQsZ+OFeATJFm4MdngDoAhsPBT74wkDQ4qjsDleuRy1IoiYFPHkChHf68OufJoEjCDYZUSt2DQzb3xUQGYr+ivgtauKdj2JY+zELYRWpV4NodizW0zFxNVllzxd7svj4tg83XiEHt1NIF3g6+Ra8HQPQqMiVIcE0eCWGe3O4ezuBm6+lCJDE29d19PkMFKv+w9Abn8YtLtcWo6OjsjFTWz4N79/sQzFXcuhssYi3Jmy8/tIpDrIB3LpTwAm5mSEp+sp4TMsDXcsrs14Owtlsj8cDV0CgjeycgKMTF7ShpJCXtoPwqh83BhP4KxPCT48kfB6KRBoTpo7PvslSSvBRm5C2Ka0BkUJJHw76kpTyUCZewOaqD9cHEhQOlTGyeo+BW3cN/P4Pg2fK2hMG5OpDrO4MTKkl2TyWF9/+nCP/0gGHADm0XJXEIDPZHo66VS0B1c2iBvMhKG0b5NTdlAtr59PnnTz0Kg3ls1Sp4YGKGduH3JIhVs9+VPIlIGcLTI8ILL7LpqInQGbz03IuAwbdLPVgEokE4vE4stmsKr1er7oPY7HYuWhdGZKUpTOZkhexa+eLBbz5qo4vVwQsZHDv+wC+epiDh9IDi6DIiqSpXsbEaWRnZwfspNvb2xgZGcHU1BRs21bt5eVlpFIpaFozH01hz8wMBnV8vWrBSRfUHrKg4flnkvDpBXz6XQif3M8j1Espocj8laWGId54b28PwWCwMlpXHh8fY3p6WjFWO+AaZeqQdIEOBWJ4wUpi0H+Ka6EovE4ODx6Z+PB+Cj0EhpFwDiKtpadWc009EolgYWEBExMT2NjYUCMDAwNYXFwkK2RqZpaqzZxVptCGv5zo6H/Ph9UHJoRfR5zMYnoNFeKVaU8r19fXsbW1pUy0tLSEg4MDtWR+fl6ZsHH9OYAoxDUJ00rDq/GFqtPVYJMJq0Zq1OXaNgxD+YrKY8Tm7u6umtff3w/LsprWuDq1kHS7U8Z941mJvz+n68AhEFm+1+iuaZ1Lm5RzBzs4f9usyNDQkKomk0nFEEdfrbgyRDcU/ohZeBz3YO9fA48jVFL7OOOj5HymvFZRq/rs7KxiKBqNYm5uDpOTk2oqM+X2e7Apyng2Xe5IpMk8NSdjQ5m6Bq+lP/VLWmOUsWMfHh5ifHxcgeHXzMwMjo6Oqm2ucJS5mozTQ2+wnsrqysu5kAr/4eHhKhhOmCsrK9jf34dpmlW1lYoroMpgJ8pwOAyONDYXg+FEyQy6geH9ug7I7/eDHXhzc1O5AGfnVmC6Coj/ccDSWKrOc15dYYhBrK2tKSY4mjgXXVRco+yii8+bl06nKaNLFTmNuabVupZR1mrBZfrZd9oR18TYjqJOrblygIxKFHTqhP9HD2P5D7xNuyngDwkoAAAAAElFTkSuQmCC", "parameters": [{"help_string": "", "name": "bolt_act_target", "type": "", "format_type": "text", "label": "Host", "required": true, "value": "$result.host$", "default_value": "$result.host$"}, {"help_string": "", "label": "Perform Action", "type": "", "possible_values": {"Restart Service": "service"}, "format_type": "dropdownlist", "name": "bolt_act_name", "required": true, "value": "service", "default_value": "service"}], "uuid": "957e44661131409dafc5cfa15b421f63", "description": "Runs a Bolt Act Task with Puppet Enterprise"}, {"code": "\n# encoding = utf-8\n\ndef process_event(helper, *args, **kwargs):\n \"\"\"\n # IMPORTANT\n # Do not remove the anchor macro:start and macro:end lines.\n # These lines are used to generate sample code. If they are\n # removed, the sample code will not be updated when configurations\n # are updated.\n\n [sample_code_macro:start]\n\n # The following example gets the setup parameters and prints them to the log\n puppet_enterprise_console = helper.get_global_setting(\"puppet_enterprise_console\")\n helper.log_info(\"puppet_enterprise_console={}\".format(puppet_enterprise_console))\n puppet_read_user = helper.get_global_setting(\"puppet_read_user\")\n helper.log_info(\"puppet_read_user={}\".format(puppet_read_user))\n puppet_read_user_pass = helper.get_global_setting(\"puppet_read_user_pass\")\n helper.log_info(\"puppet_read_user_pass={}\".format(puppet_read_user_pass))\n splunk_hec_url = helper.get_global_setting(\"splunk_hec_url\")\n helper.log_info(\"splunk_hec_url={}\".format(splunk_hec_url))\n splunk_hec_token = helper.get_global_setting(\"splunk_hec_token\")\n helper.log_info(\"splunk_hec_token={}\".format(splunk_hec_token))\n bolt_user = helper.get_global_setting(\"bolt_user\")\n helper.log_info(\"bolt_user={}\".format(bolt_user))\n bolt_user_pass = helper.get_global_setting(\"bolt_user_pass\")\n helper.log_info(\"bolt_user_pass={}\".format(bolt_user_pass))\n puppet_bolt_server = helper.get_global_setting(\"puppet_bolt_server\")\n helper.log_info(\"puppet_bolt_server={}\".format(puppet_bolt_server))\n puppet_action_hec_token = helper.get_global_setting(\"puppet_action_hec_token\")\n helper.log_info(\"puppet_action_hec_token={}\".format(puppet_action_hec_token))\n puppet_db_url = helper.get_global_setting(\"puppet_db_url\")\n helper.log_info(\"puppet_db_url={}\".format(puppet_db_url))\n\n # The following example adds two sample events (\"hello\", \"world\")\n # and writes them to Splunk\n # NOTE: Call helper.writeevents() only once after all events\n # have been added\n helper.addevent(\"hello\", sourcetype=\"sample_sourcetype\")\n helper.addevent(\"world\", sourcetype=\"sample_sourcetype\")\n helper.writeevents(index=\"summary\", host=\"localhost\", source=\"localhost\")\n\n # The following example gets the events that trigger the alert\n events = helper.get_events()\n for event in events:\n helper.log_info(\"event={}\".format(event))\n\n # helper.settings is a dict that includes environment configuration\n # Example usage: helper.settings[\"server_uri\"]\n helper.log_info(\"server_uri={}\".format(helper.settings[\"server_uri\"]))\n [sample_code_macro:end]\n \"\"\"\n\n helper.log_info(\"Alert action puppet_generate_detailed_report started.\")\n\n # TODO: Implement your alert action logic here\n return 0\n", "label": "Generate a detailed Puppet report", "short_name": "puppet_generate_detailed_report", "largeIcon": "iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAANlklEQVR4Xu2cfYxVZX7HP885576/zAzzBjMwFBhoBKw2JVZUrLLCtrL8QbIx7R9q0xq1WdG6G5cdtNjKi0LqCuxSu4ZVqmss3UhbYo0moBu6UaJGa0xbEBjeX2SY97lv555znuZ37lwchhnmXl6KjPMjwMy9zz33ns/5/l6fM6Pmzp2r+/r6GLPzCcTjcdTUqVP1GJzhCajrr79ep1KpMUZDEIjFYowBuoA0xgCN4DdjgMYAXVpoHVPQmIL+XxVUKJc0JgpN4Ts1zCcoPG/4/xbXXHvlVhkupglYAdp6HDra0xAIg/ZAu6AGQuqH4BmgDZrGh4iEcuRd4Wj5eK8lKwMQdKQ9bmsOc9cchZ3qwsoHcU1jwEkXNaVRARNX22z9reJEl0kkGATlU7qmrCxArcczrP6ziSxfEYATe4BqMMwCIN+TBqgj5EHOYOGPsvzn/1o0VgbRRu4CLvnN5FYyIDn1gyc9li+qYvVjHej2DI6OEdB9YDi+O/nmBQv/hzQ6H+Su1fBRq0ltZQBFfvQCknNuPemybHGS5/46jz6VwstnMZPVEKsGtxuIQsdpPEdhxEECzx+vzLPrcJj6ZBADe5QDOuXwk++FefZRBWc6oKKS7b9x2boToskQViBNyxKLpnoPvAzk43xnlcPuQ5rGhIk7XML7ZnqX/6lKdjFfQT6gKM8+CrSdgaYGntmQ5ulXO8CoImB28OmGGmbPtCGTh1yUu1bl+fAQNCQsvIEx6hsMZeBHuwRA7TCpiud+HqRlSydGVYBx2uU368LMmpGDPgWOxYJVDh8cNGlIqm8HoB8vjrL2EQ3tHVBXyaY3bJ7+VYbKmgQx4I2fWMxsSoPt4tkh/uhZg//ZZ1NTYZE31TmJ7loQUdkKemJxlHUC6Ewnng7QJVjSBqY28cwg8eBpTMPCiPage6uY8VSe1jMpplRVgCd19SguFFtPufx4cZi1Sz0404XOx1AhG8JpIOHXQToD2lYYZg6iFSzfDM/+2qZ2UoDKoMaV6tu3/rJgSBnJGono8vfqAi1PQSdsWr4fZ80PRUFnwAuBlwNDWggH/EI5BiqHnTEJSg05vpq1m7O0vNJLfWOUiDzoCR5J+WKF1PY1Bo2iUHxqWeh/ffWsDECKQ6f7+KvvTuT5v6wl292G6yk8v3GVPx62Ujh5lwk1eUzVhe52UZUpqJvMMz9N8fTrKSY1VBCMp3FcC0tauUGVkTTBHiGUyoHKogn1F6FXR0klA5LrnNcQsAySoSA2JkEnj5IKWoHWCpRHVxamVBj82zMGibpe9H4HVWNDVTVrN2laftWLToSJWXlZjrxMnE2+9gtx1yOesIglwmjHwdAOnrqQO15ZdZUMSD6GaXjkbIe+dABtOv5ZBV255v3OovKkrBB9Z/LMv87g39c1EY+dRB91UJUmVCV5bovBr3d4TKhIo03X1568XkAJ6aClONWZ4US3iRVKYnkZXGOwzq4slIuugwpNaRDLE7XkyJoSH/q7eVGCH1sCuGaew/tt5s3K89bzNSRjWbyjxzCSSYjU4qWyGAPL6n44fhybOI71m3P8aPNXTGkcB36De/VCdVkKKpDVaKmItdGfh87qpz+eeL4qXCPAwSO9fLc5xL/8fQXJQBd05iHgQGBQhpJ5kmuCkYGJdfzDZsUPfpFiemMIxxQ3u3rlwUUAKkHeoiatcY0EBw8cZ/EfRPnnv40TpQNykvEGmfDyTD8o01jL+i0eP3y5j2kNEV+Now+QH04KcaM3a2Fl03y0CibO0NA1BOCzgHLQWPNtAFSAIxVNKmNQHcmx46kADZNy0CPPScoanJkkG2ahQRSkR7+CFC5Kh+nOOVRHbHY+GaNhUi/0+Ml8DJCBh9YherMuVbEsO5cnaJzU0w9ISu7BFXJRQXWj38WUVmjDQWmTLscgksvx4d+ZTJzhQGexvxpYGRc2iFA2NFT3u1hq9AZpQeAYmog22XOsl9+fFOe3a12iURvSUnZLiCrGIFnt+p0+yoHGKjb8k8fjL49iQFoqbB1l7+kcN9Zm2PpkPTOaU3C6B8z+inLghqPfc0j6z/uAfvaK4tHNGZobw0OmecdxzkuFlmVhGAbZbJauri7S6TTBYJBEIuH/VUqhdfn9XNl1kGSmYsF4Tn3rn7eBUh7aMjlwOMvv1qf5YON0xtWewTv+FUagAqrCYITALXbz/Y2YDhQATa7mlz/L8MCGTpqbYucAEgCe59HW1obrfr3HJnDkVrkTJ04wbtw4Zs2axYQJE+jt7eXAgQN8+eWXyJqmpiYfohyjVCsZkICxcJFjp70YQXJo5aCRbZ5ir+SCpTh+0qG52uE/VjXQPPMIzmEHKxSG2gjbtsPWD3PUxSVOFWD7BYHfjGmsSID/PmLwX4ds4mEpHr++6qIKAfHCCy/4IIrW3t7Ovffey4IFC1i2bBlz5sw5+9ypU6fYsWMHW7ZsYefOndTV1VFVVUU+L1tQI1vJgORQhmGRtlPk+7KgK/rnNXIlC62DNmzauxRzfifKOz9VVNe4eEfSGEkbkuN4Zovlj2fJ51DhMNoo6PEc4ec9qipN6ipN8k7/hmT/eYjrVFdX+4oYbLt37+bmm2++4Blv2rSJxx57jIqKCv84A1U43AtLBiQn8VW7zff/sI5Hl8To60mjpR/z+zKFxB3LNUj3BZk9u5cJDV+h2/pQwSporuGVX6T4i4056uoTVCQccuT8pneoqCC93FDW09PjX/1du3Yxfvz4kS//ECteffVV7r//ft/dxO1GsjIAKQ4eS7PyT2t56kkD2k4VJor+QKcAyS8AlQk5B69NYURMqA+x4eUIf/N6J/GkQSJqkTdyGK7hN7VDmRxqKHCXA5C830MPPcRLL71Ec3PziPGoZEBy4MJMOsLapS60d5H3LAIy8oj2bz3ng5BOo5XhcyJWwerXPZ7a0kdlo0V9JIytpT4qdvPDXb+hs81IgI4ePcqaNWs4duwYkydP5uGHH2b27NnnvcnevXu54YYbqK2t9TPdhaxMQA7LvhfluaWy7dOFpw3sbBWenUVbWX/EEQ1nMVQQQwK4E+DGJyLsaXdpqnPw3EubDF4I0LvvvusHaslwA2379u0sXrz4PAb33HMPb775JlOmTLlg+r8EQO1QX8nGN1zWvJKluipOLGiz9YkKpkzrg1wPOlXDvHUenx/MUZ+MFO7uKIwOL8qGAyS1z3XXXcehQ4eYMWOGH3wlnbe2tlJTU8MXX3zhq2Wgvfbaa9x3331MnTr1CijoEaCzA8ZHWPmSyYpfGhhVJuFghg9XGvzeNClpcuhsgu+s1Ow+bDMhKcP9S5sMDgdI6h1J7ZLuJUMVzTRN9u3bx4svvui720D75JNPmD9/PpWVlQQCUoMNbRenIH9ntQuaYqx80WbF5pzs8hMxs3y0LsLsGQZkbbADLFiV54NDBo0JC/cS9+aHAyQ/JTB37lw/9kiWK5pUz1IoStaSOmigydp58+b5FbfUVlcAUCfUJdnyr3nWbuujtjJI3ND844MJmprswu15Wbk/yOGDQ/iALvXmhXIB+YmltZUlS5awbdu2cxicPn3aB9TR0UFSZuWXS0Eti2KseURBZw+e46J1JYQUhtGLp6Nopw9Te6iQCfkgC1bK7S+KCckAbnFv56IiEJQLqKigpUuXsnHjxnPedf/+/dx+++3+Y5FI5DIBOunRsjjOmh+kcLq6Me0gygqCNeAOM9vfxIGwRjtBFq52+eiAQW1FGK0u7Q6z4QDJ49J/ZTKZszGo2JyKgt566y0WLVrkQ5CGVZ6TYlNaE+nZJFZdBgUpWo9mePL+CaxabsKZ4+DE8e+KKkbf/qq6cFmAXJz5T7Sza6/LpIogpgzRLlI98rLhAElfdffdd/s9l1TIUtvIY4cPH+aOO+7g/fffP+9d169fz+OPP375spicWHuXy5/cGODP5wdxejP+VrNH/ryKWDgZYY2TjfL82yn2tcVIRF1MXH9OfbF2oTpI+rQHHnjAr22KdueddyLpvLGx8by3vOWWW/j8889HbFnKyGIaywwjP5nY2d2NaUT8/THJTINbBqU1eaUIO1BXHYZwGEfbWJ55Sbe/DAeo6DZC4Z133mHPnj3MnDmThQsXnuNWRUpvv/2273JSJIq7XcjKAOR7MB4GrjbPtmACYyhRyF69VgpLOf6NDcPfkV+6nkZqNUo90k033eSrR9xxpNlQmYBK/QhXZt1wgOQkpXIu2kBFDf4kUj2L202fPv3yjjuuzCmXd9ThAMlQTILugw8+OGzQ/fjjj1mxYoXvguJaArSUEeyoUJCAk5ZBZs8tLS3ceuut/veSyaRzlzQvTavEz2nTpA8qpPtSbFQAknbhtttu47PPPvPPORqN+vc327ZNd7fc4A4TJ070C8JSpogDwY0KQMVe7Pjx436hKLseAkIylDSiUgiWqpjBqhpVgAY3q6W40EhrxgCNQOiaAiTxRLZ7Pv300/NGFDJCPXLkyDnbQSOpo5TnrylAMhiTGPPee+/5QbdY78jjEqS/9S5WBCJjVAm+xe+lUJT5TnHUWooySl1zTSmoOMKQ0erAdC2PCzTJViO1DqWCKa67pgCVe3KXY/0YoNGUxS6HIso9xpiCxhRUrmbOXT+moDEFXQYFjf2StwtDVGO/JnB4QLIt/X/QcXpolFEl9wAAAABJRU5ErkJggg==", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAEyklEQVRYR+2YTWxUVRiGn3Pu/Hb+agKREmMqi2KaSE1IKBAJCwmkBBdoV5p0gYk/daGpLZTEGjGGOpZaSbpQNo1FEExIoCYVg6ZQQE1kwYrGYiIqIVhr0U5/Zu69M8ecMx0Z6kynNLRhwdnM3Dtz5zz3/d7ve2dGVFdXq3Q6zf2wLMtCrF69WjmOcz/w4PV6HwDNWYk5FFIoxMzFuUdljnNHi1HjIkAKS1o8ttwGF5QhyOL9PS35MyEQUi4GT2EPaR0ejXkZ6E6hJkAKF5BgQe8ZScunHsJB3ZX3XquiJauISM53uIz+Jbg4HGLVcpsnHklyeABajnsIBzT2EgKtjArOxx0Gfw6x+fUEbzwj6XpV0Xvaw+5jEArcexjtgaIKrYgKLsYdro1YHPlGsq5KsuXJCT4+7WffCZdQwLd0HtI7VcTgwocOKuEi/C7K9aJsxbXxENvfcUkhkTNm/z/ZwtUrqlDQL3lpSznplINAkEwrttTYrK38h1+nQ2xvcRlxFZ7MjJOUIhD0IqWe+NaC1SsKpJTCTkFGZttdCYFKpTn5bhnrVo7z+1SUb7/L4PNmM1AEPXSfTDIy6UcJDbUwlUoMxtkfK0gmXPr2+Vm7IqHnwYwSEqIW2/d6+WlEs2QH6ELWXWaZIuVavPyUTdvzaUjlWl9AxENdm8Xw0gJlsB0vjU+n2VufglQmOzB1eaIWdW95lhZIp9tUUtG0FXY/50BKswhQCqJe6tokwyNicUp22wUzgaoESQdqVyk+a4YyZYPPYzLOrKiPHW8qhv647aHx8XHzks/nw7Ztli1bhv7edevWLcrLywtarKCHzBYqw/RU7m4lTsZl8+MWh1sFQTVNZ3+II2dSeP3S9JMWamzKIq2rCAbg3LlzZvIODAxQVVXF+vXrzfmzZ8/S1NTE5OQkclZIFwWqCFsc2xckPaWDVYErqXhoEp90+eh0hPZjDuFYGjEDkO39262uNx4aGiIcDhdU4ubNm2zcuBGRd82c0VERFVz4wMFN6FmUNp3sERlO/BjixU9slsc8uWIV3DAfaGxsjMbGRq5cuUJzczMNDQ3mms7OTg4cOEBZWdl/n1E87TVQ3OHiLxY79ghe2wHvNaTo+SpE6xduybTPB9KbdnR0EIlEGB0d5fLly1RWVnL16lU2bNhALBabJ9D7Dj/8Jnm2LckrW728/YKk92vB7uOiZNrnAx08eJB4PE4wGDSGPnToEPX19SQSCaqrq43pc6uoQisjksG4bb6gCZ9AZXSEuBwe9LDnc4uyoDFN0WE8W6Guri4CgYAB6u/vp7a2Fu2jmpoao9ycQLrLHo5IevdaONrU2bZDeKDvew+dX6aJ+LWb5wd06dIldu7cycTEBHV1dRw9etTs39fXx65du+ZTMkUmI0hM2Xd0geYKWBJf0CoZV/kK6aDWyly/fp01a9agj3V3bdq0iRs3btyh8l1m2fzjMh9It782sS6ZBtEDs7W1lVOnTplz+WtJgNrb2+np6WHbtm2mbHowauDZMHPOoflrUfidhbrM3L0Q6N/vxdaiKjQ8PGxavbu7m/3795vnpdaiAel/U1paWkxZBgcHTZ7pzUqtRQPSG+vwzPkif/jNBbWoQKXUKPT6A6BSqhmF7re/9P4FOOuQpa0DAR0AAAAASUVORK5CYII=", "parameters": [], "uuid": "072c18b4c3e949c08d8078614d989751", "description": "Provided a puppet:summary report this will generate a detailed report of the same Puppet run"}, {"code": "\n# encoding = utf-8\n\ndef process_event(helper, *args, **kwargs):\n \"\"\"\n # IMPORTANT\n # Do not remove the anchor macro:start and macro:end lines.\n # These lines are used to generate sample code. If they are\n # removed, the sample code will not be updated when configurations\n # are updated.\n\n [sample_code_macro:start]\n\n # The following example gets the setup parameters and prints them to the log\n puppet_enterprise_console = helper.get_global_setting(\"puppet_enterprise_console\")\n helper.log_info(\"puppet_enterprise_console={}\".format(puppet_enterprise_console))\n puppet_read_user = helper.get_global_setting(\"puppet_read_user\")\n helper.log_info(\"puppet_read_user={}\".format(puppet_read_user))\n puppet_read_user_pass = helper.get_global_setting(\"puppet_read_user_pass\")\n helper.log_info(\"puppet_read_user_pass={}\".format(puppet_read_user_pass))\n splunk_hec_url = helper.get_global_setting(\"splunk_hec_url\")\n helper.log_info(\"splunk_hec_url={}\".format(splunk_hec_url))\n splunk_hec_token = helper.get_global_setting(\"splunk_hec_token\")\n helper.log_info(\"splunk_hec_token={}\".format(splunk_hec_token))\n bolt_user = helper.get_global_setting(\"bolt_user\")\n helper.log_info(\"bolt_user={}\".format(bolt_user))\n bolt_user_pass = helper.get_global_setting(\"bolt_user_pass\")\n helper.log_info(\"bolt_user_pass={}\".format(bolt_user_pass))\n puppet_bolt_server = helper.get_global_setting(\"puppet_bolt_server\")\n helper.log_info(\"puppet_bolt_server={}\".format(puppet_bolt_server))\n puppet_action_hec_token = helper.get_global_setting(\"puppet_action_hec_token\")\n helper.log_info(\"puppet_action_hec_token={}\".format(puppet_action_hec_token))\n puppet_db_url = helper.get_global_setting(\"puppet_db_url\")\n helper.log_info(\"puppet_db_url={}\".format(puppet_db_url))\n\n # The following example gets the alert action parameters and prints them to the log\n bolt_target = helper.get_param(\"bolt_target\")\n helper.log_info(\"bolt_target={}\".format(bolt_target))\n\n task_name = helper.get_param(\"task_name\")\n helper.log_info(\"task_name={}\".format(task_name))\n\n task_parameters = helper.get_param(\"task_parameters\")\n helper.log_info(\"task_parameters={}\".format(task_parameters))\n\n puppet_environment = helper.get_param(\"puppet_environment\")\n helper.log_info(\"puppet_environment={}\".format(puppet_environment))\n\n task_timeout = helper.get_param(\"task_timeout\")\n helper.log_info(\"task_timeout={}\".format(task_timeout))\n\n\n # The following example adds two sample events (\"hello\", \"world\")\n # and writes them to Splunk\n # NOTE: Call helper.writeevents() only once after all events\n # have been added\n helper.addevent(\"hello\", sourcetype=\"sample_sourcetype\")\n helper.addevent(\"world\", sourcetype=\"sample_sourcetype\")\n helper.writeevents(index=\"summary\", host=\"localhost\", source=\"localhost\")\n\n # The following example gets the events that trigger the alert\n events = helper.get_events()\n for event in events:\n helper.log_info(\"event={}\".format(event))\n\n # helper.settings is a dict that includes environment configuration\n # Example usage: helper.settings[\"server_uri\"]\n helper.log_info(\"server_uri={}\".format(helper.settings[\"server_uri\"]))\n [sample_code_macro:end]\n \"\"\"\n\n helper.log_info(\"Alert action puppet_run_task started.\")\n\n # TODO: Implement your alert action logic here\n return 0\n", "label": "Run a Bolt Task", "short_name": "puppet_run_task", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABL5JREFUWAnNWEtIY1cY/s69N8m9eagtFK1TW7uwUhdKO3QUQepiWmQWQunKWXXVlSDIFGFWlVK6Geimu4JSC+1sBlIXfQ1FFx2wuCzUobSC1Iq1TBLzzk1uTv//5GEeN46mCfjHe8/7P9/5/sdJFGNjY9JxHFwF0XUdBoPJ5/NXAY/CoF0ZJGUgVw6Q4c6QpG4N/K4XCVHf0fGWKyBd0/HyczZQAKRCQECEwGla4CQpqN49Yl0BXQsZ+OFeATJFm4MdngDoAhsPBT74wkDQ4qjsDleuRy1IoiYFPHkChHf68OufJoEjCDYZUSt2DQzb3xUQGYr+ivgtauKdj2JY+zELYRWpV4NodizW0zFxNVllzxd7svj4tg83XiEHt1NIF3g6+Ra8HQPQqMiVIcE0eCWGe3O4ezuBm6+lCJDE29d19PkMFKv+w9Abn8YtLtcWo6OjsjFTWz4N79/sQzFXcuhssYi3Jmy8/tIpDrIB3LpTwAm5mSEp+sp4TMsDXcsrs14Owtlsj8cDV0CgjeycgKMTF7ShpJCXtoPwqh83BhP4KxPCT48kfB6KRBoTpo7PvslSSvBRm5C2Ka0BkUJJHw76kpTyUCZewOaqD9cHEhQOlTGyeo+BW3cN/P4Pg2fK2hMG5OpDrO4MTKkl2TyWF9/+nCP/0gGHADm0XJXEIDPZHo66VS0B1c2iBvMhKG0b5NTdlAtr59PnnTz0Kg3ls1Sp4YGKGduH3JIhVs9+VPIlIGcLTI8ILL7LpqInQGbz03IuAwbdLPVgEokE4vE4stmsKr1er7oPY7HYuWhdGZKUpTOZkhexa+eLBbz5qo4vVwQsZHDv+wC+epiDh9IDi6DIiqSpXsbEaWRnZwfspNvb2xgZGcHU1BRs21bt5eVlpFIpaFozH01hz8wMBnV8vWrBSRfUHrKg4flnkvDpBXz6XQif3M8j1Espocj8laWGId54b28PwWCwMlpXHh8fY3p6WjFWO+AaZeqQdIEOBWJ4wUpi0H+Ka6EovE4ODx6Z+PB+Cj0EhpFwDiKtpadWc009EolgYWEBExMT2NjYUCMDAwNYXFwkK2RqZpaqzZxVptCGv5zo6H/Ph9UHJoRfR5zMYnoNFeKVaU8r19fXsbW1pUy0tLSEg4MDtWR+fl6ZsHH9OYAoxDUJ00rDq/GFqtPVYJMJq0Zq1OXaNgxD+YrKY8Tm7u6umtff3w/LsprWuDq1kHS7U8Z941mJvz+n68AhEFm+1+iuaZ1Lm5RzBzs4f9usyNDQkKomk0nFEEdfrbgyRDcU/ohZeBz3YO9fA48jVFL7OOOj5HymvFZRq/rs7KxiKBqNYm5uDpOTk2oqM+X2e7Apyng2Xe5IpMk8NSdjQ5m6Bq+lP/VLWmOUsWMfHh5ifHxcgeHXzMwMjo6Oqm2ucJS5mozTQ2+wnsrqysu5kAr/4eHhKhhOmCsrK9jf34dpmlW1lYoroMpgJ8pwOAyONDYXg+FEyQy6geH9ug7I7/eDHXhzc1O5AGfnVmC6Coj/ccDSWKrOc15dYYhBrK2tKSY4mjgXXVRco+yii8+bl06nKaNLFTmNuabVupZR1mrBZfrZd9oR18TYjqJOrblygIxKFHTqhP9HD2P5D7xNuyngDwkoAAAAAElFTkSuQmCC", "parameters": [{"help_string": "", "name": "bolt_target", "type": "", "format_type": "text", "label": "Host", "required": true, "value": "$result.host$", "default_value": "$result.host$"}, {"help_string": "Bolt Task to run", "name": "task_name", "type": "", "format_type": "text", "label": "Task", "required": true, "value": "", "default_value": ""}, {"help_string": "Additional parameters to pass to Bolt Task along with alert contents", "name": "task_parameters", "type": "", "format_type": "text", "label": "Task Parameters", "required": false, "value": "", "default_value": ""}, {"help_string": "Puppet environment where task resides", "name": "puppet_environment", "type": "", "format_type": "text", "label": "Puppet Environment", "required": false, "value": "production", "default_value": "production"}, {"help_string": "Amount of time in seconds before the task times out. If not set defaults to 360 seconds.", "name": "task_timeout", "type": "", "format_type": "text", "label": "Timeout", "required": false, "value": "", "default_value": ""}], "uuid": "0306f882c5d3401bbc2ee5d450f63dcb", "description": "Runs a Bolt Task with Puppet Enterprise"}]}, "basic_builder": {"appname": "TA-puppet-report-viewer", "friendly_name": "Puppet Report Viewer", "version": "3.1.0", "author": "Puppet, Inc.", "description": "", "theme": "#000000", "large_icon": "iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAFhUlEQVR4Xu2baUhcVxTH/2+cmURTnamxqVOFUMctLqGgxqqtIm7F9oNUTFpssHSDiEOpGFrQDwG10FLBFkstLhjaICiBYpGi2FaE+qFudYEuxkpCrPuWOGbcMuWO0Tp9y7xFW33e+1HPve+en/9z3jn3XRn7TZMdCsY7XyyjpmNVwQqHeypDAQn/gSggFwKmgCggZTmOU0G9YxsYur3htLKGYfB6sjvraccySX/w1X189M2KEwydG7DeZKKACAEK6B8dcIYYBUQBic7cVEFyXvN357cwtfTQaSrDAFEBOpqkRWvvkeGxfM1LgbS6ZsfLHy+i7Zc1KdOOjK3iVmPH0wvvz6HnlnNxeWQoCGx03wABDM6/N4vhO+qCxPxR9YSk86ATWgZPebtB68aFnUGoZQa//7WpBvE4fGAASAJk9tWi5ooB8aE6EFjswSDq6iz6/1SHkiQDIkAiz+pQ9qonEsP0MJ5iQ1qyPsRLHy7ip9/Wj7ySZAEiXgebtLjyggdeSXCH7+MaFojbs1sovnFfEqBfJzYPnfJkAyKe+xo1uJzkjndfPAW/05xJSRKgT1qsuHr9nqQ5B22sCBDZ3GMnGbyW5I5rFz3xpJGtJCkOqBIQAXBCx+BSwkl89qYBBg+uxC0Ok2oBEfc1GuDOl2fg5y0/1FQNiEC6W0MBCcYKBeQilVBAFJC4tw2fFVUQVRBV0L8JKK6k9y5IQ0xAYNGBOnxX7A0fL/nthmoLxYRQPa5bjDD7yq+iCXtVAnr+nB5Vbxtw/qxWWQJTI6DnzulRkeeFC0Hs72VyaB2EgsLDw5GUlARPT0/WlmZnZ1FfXy+4VdlJ+tlgnQNOfKie9YAVmx1lzc63Q8QA+/nWOn4cEXcKmZGRgeTkZM5lJyYm0NHRgby8PERERCAxMZET0NzcHOrq6tDf34+mpibOtWQBeuZpHare8gLJPVzj8qdL+LrrgRgmsm3KyspQXFzMOZ843tfXBwJRzBgdHUVnZ6cDEgG7d0gGFGTSosFiQHwIN5yLFYto7raJ2ZciGyFAchceHBxEfn4+uru7d5dgvr92WtJXDS8PBtFm7pxz6REcSQvK9OYgAJGtjIyMIDc3F0NDQ46d7duHw9zKJTR3P8DGlkyPJU47KEBkGySpd3V17R+gNz5fwo0uG9Y3/wvtbJM8SEDT09OIi4vD+Pi4cgVZau+hus2KTefbMhL1IN1cDKCGhgZYLBbW4gsLC9DphEuT4OBgkOStOMT+r+svQoDsdjtaWlqQlZXFS97HxweTk5PQavkLXFI7cQIidYzV5hwu5ALVGQO7zzqMgHp7exETEyMoS4ZhEBUVhZ6eHl47XkBH4RKnkILEACJUwsLCMDAwAL2eu2SJjo7mVtBxAeTn5+doNdLT0zlVREL1yF7i3A8FESppaWlob2/nDTMKSA6gb3vX8MOw851DjYZBRR67Iz6qSXpHMrIUJKUqoYBc0KKAVAzI398fpNpOSUnh9JJU3KqspMXWQeQwbXh4mFcCmZmZ6gRktVpRXV2NoqIiXueNRqOjY4+MjBSupINMWkUt+MzyFpZXFS0h5Z2wa+uqWSWQKisrUVJSwrn+2NgYAgICBJ/taDWkXgOW5c0BTHIFiDzSZrNhZWUFMzMzaGtrQ2pqKkym7f+aJM2q0IiNjXX0aaoGtBeAo20gHbeIQWxDQkK2jzvUrCARLFgmJDRJb7ZzLk0B7UE0Pz/v+FTU2tq6+1NVAiIqIIdhgYGBokU0NTWFwsJCNDY2Os1RJSBSBxUUFKC0tNTxpjKbzbygiGp2PhzW1tay7FQLaOdEMTs7Gzk5ObyASKFYXl7O+3vVAxIdYzyGFJALghQQBaQsyKiCqIKoglgExJ4HiUFHQ4yGmBid8Nv8DQU6b+fFZyyIAAAAAElFTkSuQmCC", "small_icon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAACS0lEQVRYR2P8v1byPwMewBj8HJ801eUYRx1EIExRQggWPROT+RjyvLjBWgc0ygadg1wb34FDJduDiyHAnGPgQwhb9Eb0fWBYefQ71XMTLgMJ5jKQxugJHxiWHaaPoxiDzDmwlkO53twMDtpscI8EdL5n2HjqB81DipGBgQFnwTg3S4AhyZkT7gjLyjcMJ279pqmj8DoIZLO/KTvDhgohgo6gVvFA0EEgl8Q6cDIsyhXA6yi6OijShpNhWeGog3DHyGgIEcpCd6eJMSiJMw+ORP1hsQQDPxcoM+IHdMllX5dJMHCxQxzz7ed/Bu6oF4TchSL//z9qmXvnzh0GFRUVDDOEhYUZ3r2DVOyMpiqsWEvq2Zn8DPoKrGBF7778YxCOf0mSY0CK0R2EzwBtbW2Ga9euMRCsXD99/8/AH0NayMAsJsVB9+7dY1BWVibsIErSBrqDpk+fzpCVlQV2r4WFBcPMmTMZ9PT04AHn7e2N6qDEKR/AktF2nAwueuyQOKWg14HuIEZG1MzBzMzM8OfPH7iDQA6kaZuakINALrl16xaDqqoq3FED7qCLFy+iRBvBRE3LKAMFy6BzEHK0PnnyhIFxbZkg3q50cNd7kssfXNk+NzeXYcqUKXDz9u3bx+Do6IiaqPE1Ycl2CVQjtnIIJHb69GkGMzMzDONBuZCoFiO5DiOlYAwKCmJYv349fR30+PFjBllZWQz/ubi4MOzduxdS7tEzykBRoqCggOKgZ8+eMfz69QtRDtHbQYSin+4hNOog5BAgpi5DDzEADvEYHk3zgtIAAAAASUVORK5CYII=", "visible": true, "tab_version": "3.1.0", "tab_build_no": "2", "build_no": 4}, "field_extraction_builder": {"puppet:facts": {"is_parsed": true, "data_format": "json"}, "puppet:detailed": {"is_parsed": true, "data_format": "json"}, "puppet:summary": {"is_parsed": true, "data_format": "json"}, "puppet:bolt": {"is_parsed": true, "data_format": "json"}}, "global_settings_builder": {"global_settings": {"customized_settings": [{"help_string": "URL to access the Puppet Enterprise console", "label": "Puppet Enterprise Console", "type": "text", "format_type": "text", "internal_name": "", "required": true, "default_value": "https://puppet.company.internal", "name": "puppet_enterprise_console", "value": "https://puppet.company.internal"}, {"help_string": "Puppet Enterprise User with PuppetDB Access", "label": "Username", "type": "text", "format_type": "text", "internal_name": "", "required": true, "default_value": "splunk", "name": "puppet_read_user", "value": "splunk"}, {"help_string": "", "label": "Password", "type": "password", "format_type": "password", "internal_name": "", "required": true, "default_value": "", "name": "puppet_read_user_pass", "value": ""}, {"help_string": "URL to HEC services collector", "label": "Splunk HEC URL", "type": "text", "format_type": "text", "internal_name": "", "required": true, "default_value": "https://splunk.company.internal:8088/services/collector", "name": "splunk_hec_url", "value": "https://splunk.company.internal:8088/services/collector"}, {"help_string": "Token from HEC configured with puppet:summary or puppet:detailed sourcetype", "label": "HEC Token", "type": "text", "format_type": "text", "internal_name": "", "required": true, "default_value": "", "name": "splunk_hec_token", "value": ""}, {"help_string": "Puppet Enterprise User with Bolt Task Access (if different from PuppetDB)", "label": "Bolt User", "type": "text", "format_type": "text", "internal_name": "", "required": false, "default_value": "", "name": "bolt_user", "value": ""}, {"help_string": "", "label": "Bolt Password", "type": "password", "format_type": "password", "internal_name": "", "required": false, "default_value": "", "name": "bolt_user_pass", "value": ""}, {"help_string": "Puppet Enterprise Orchestrator URL (derived from PE Console by default)", "label": "Orch. Services URL", "type": "text", "format_type": "text", "internal_name": "", "required": false, "default_value": "", "name": "puppet_bolt_server", "value": ""}, {"help_string": "Provide token if using dedicated HEC for the puppet:action sourcetype", "label": "Bolt Action Token", "type": "text", "format_type": "text", "internal_name": "", "required": false, "default_value": "", "name": "puppet_action_hec_token", "value": ""}, {"help_string": "URL to access PuppetDB (derived from PE Console by default)", "label": "PuppetDB URL", "type": "text", "format_type": "text", "internal_name": "", "required": false, "default_value": "", "name": "puppet_db_url", "value": ""}]}}, "sourcetype_builder": {"puppet:detailed": {"metadata": {"event_count": 0, "cims_count": 0, "extractions_count": 0, "data_input_name": null}}, "puppet:action": {"metadata": {"event_count": 0, "cims_count": 0, "extractions_count": 0, "data_input_name": null}}, "puppet:summary": {"metadata": {"event_count": 0, "cims_count": 0, "extractions_count": 0, "data_input_name": null}}, "puppet:bolt": {"metadata": {"event_count": 0, "cims_count": 0, "extractions_count": 0, "data_input_name": null}}}, "validation": {"validators": ["best_practice_validation", "data_model_mapping_validation", "field_extract_validation", "app_cert_validation"], "status": "job_finished", "validation_id": "v_1584584836_63", "progress": 1.0}} \ No newline at end of file diff --git a/app.manifest b/app.manifest index e2cbce8..e84d69c 100644 --- a/app.manifest +++ b/app.manifest @@ -5,7 +5,7 @@ "id": { "group": null, "name": "TA-puppet-report-viewer", - "version": "3.0.3" + "version": "3.1.0" }, "author": [ { diff --git a/default/app.conf b/default/app.conf index 002f45a..baf57b8 100644 --- a/default/app.conf +++ b/default/app.conf @@ -7,7 +7,7 @@ build = 3 [launcher] author = Puppet, Inc. -version = 3.0.3 +version = 3.1.0 description = Application with view Puppet data in Splunk [ui] diff --git a/default/data/ui/views/metrics.xml b/default/data/ui/views/metrics.xml index 96487ee..c7e4560 100644 --- a/default/data/ui/views/metrics.xml +++ b/default/data/ui/views/metrics.xml @@ -1,73 +1,1733 @@ - +
- A series of useful PE Metrics + Series of useful PE Metrics +
+ + + All + host=" + " + host + host + + `puppet_metrics_index` sourcetype="puppet:metrics" | dedup host | table host + -24h@h + now + + * + + + + Puppet Server + PuppetDB + Orchestrator + puppetserver + + + true + + + + + true + + + + + true + + + + + +
- - PuppetDB Status - + + Puppet Server Performance + + Puppet Server Memory + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename status-service.status.experimental.jvm-metrics.heap-memory.committed as Committed_Memory, status-service.status.experimental.jvm-metrics.heap-memory.used as Used_Memory, status-service.status.experimental.jvm-metrics.up-time-ms as Uptime +| eval Committed_Memory=Committed_Memory/1048576 +| eval Used_Memory=Used_Memory/1048576 +| eval Uptime=Uptime/3600000 +| timechart span=300s values(Committed_Memory) as "Committed Memory" values(Used_Memory) as "Used Memory" list(Uptime) as "Uptime" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Performance + + Puppet Server Non-Heap Memory + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename status-service.status.experimental.jvm-metrics.non-heap-memory.committed as Committed_Memory, status-service.status.experimental.jvm-metrics.non-heap-memory.used as Used_Memory +| eval Committed_Memory=Committed_Memory/1048576 +| eval Used_Memory=Used_Memory/1048576 +| timechart span=300s values(Committed_Memory) as "Committed Memory" values(Used_Memory) as "Used Memory" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Performance + + Puppet Server CPU + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename status-service.status.experimental.jvm-metrics.cpu-usage as Puppet_Server_CPU +| timechart span=300s list(Puppet_Server_CPU) as "CPU Usage" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Performance + + Average Requested JRubies + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename jruby-metrics.status.experimental.metrics.average-requested-jrubies as Requested_JRubies +| timechart span=300s values(Requested_JRubies) as "Requested JRubies" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Performance + + Average Borrow / Compile Time + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename jruby-metrics.status.experimental.metrics.average-borrow-time as Borrow_Time, jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-catalog.mean as Compile_Time +| eval Borrow_Time=Borrow_Time/1000 +| eval Compile_Time=Compile_Time/1000 +| timechart span=300s avg(Borrow_Time) as "Borrow Time" values(Compile_Time) as "Compile Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Performance + + Average Free JRubies + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename jruby-metrics.status.experimental.metrics.num-free-jrubies as Free_JRubies +| timechart span=300s avg(Free_JRubies) as "Free JRubies" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Performance + + Average Wait Time + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename jruby-metrics.status.experimental.metrics.average-wait-time as Wait_Time +| eval Wait_Time=Wait_Time/1000 +| timechart span=300s values(Wait_Time) as "Wait Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Workload + + JRuby Borrow Timers (Avg) + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-catalog.mean as Catalogs, jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-environment_classes.mean as Environment_Classes, jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-environment_modules.mean as Environment_Modules, +jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-environments.mean as Environments, +jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-file_metadata.mean as File_Metadata, +jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-node.mean as Nodes, jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-report.mean as Reports +| eval Catalogs=Catalogs/1000 +| eval Environment_Classes=Environment_Classes/1000 +| eval Environment_Modules=Environment_Modules/1000 +| eval Environments=Environments/1000 +| eval File_Metadata=File_Metadata/1000 +| eval Nodes=Nodes/1000 +| eval Reports=Reports/1000 +| timechart span=300s list(Catalogs) as Catalogs list(Environment_Classes) as "Environment Classes" list(Environment_Modules) as "Environment Module"s list(Environments) as Environments list(File_Metadata) as "File Metadata" list(Nodes) as Nodes list(Reports) as Reports + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Workload + + JRuby Borrow Timers (Rate) + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-catalog.rate as Catalogs, jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-environment_classes.rate as Environment_Classes, jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-environment_modules.rate as Environment_Modules, +jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-environments.rate as Environments, +jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-file_metadata.rate as File_Metadata, +jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-node.rate as Nodes, jruby-metrics.status.experimental.metrics.borrow-timers.puppet-v3-report.rate as Reports +| timechart span=300s sum(Catalogs) as "Catalogs" sum(Environment_Classes) as "Environment Classes" sum(Environment_Modules) as "Environment Modules" sum(Environments) as "Environments" sum(File_Metadata) as "File Metadata" sum(Nodes) as "Nodes" sum(Reports) as "Reports" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Workload + + Mean HTTP Endpoint Times + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename master.status.experimental.http-metrics{}.mean as HTTP_Time, master.status.experimental.http-metrics{}.route-id as Endpoint +| eval x=mvzip(HTTP_Time,Endpoint) +| mvexpand x +| eval x = split(x,",") +| eval HTTP_Time=mvindex(x,0) +| eval Endpoint=mvindex(x,1) +| timechart span=300s max(HTTP_Time) by Endpoint + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puppet Server Workload + + Mean Function Times + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename puppet-profiler.status.experimental.function-metrics{}.mean as Function_Time, puppet-profiler.status.experimental.function-metrics{}.function as Function +| eval x=mvzip(Function_Time,Function) +| mvexpand x +| eval x = split(x,",") +| eval Function_Time=mvindex(x,0) +| eval Function=mvindex(x,1) +| timechart span=300s values(Function_Time) by Function + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + File Sync Metrics + + Fetch / Commits + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename file-sync-storage-service.status.experimental.metrics.num-commits as "Number of Commits", file-sync-client-service.status.experimental.metrics.num-fetches as "Number of Fetches" +| timechart span=300s sum("Number of Commits") as "Number of Commits" sum("Number of Fetches") as "Number of Fetches" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + File Sync Metrics + + Held Time / Wait Time + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename jruby-metrics.status.experimental.metrics.average-lock-held-time as "JRuby - Avg Lock Held Time", jruby-metrics.status.experimental.metrics.average-lock-wait-time as "JRuby - Avg Lock Wait Time" +| timechart span=300s values("JRuby - Avg Lock Held Time") as "JRuby - Avg Lock Held Time" values("JRuby - Avg Lock Wait Time") as "JRuby - Avg Lock Wait Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + File Sync Metrics + + Client Service Times + + `puppet_metrics_index` "" sourcetype="puppet:metrics" +| search pe_service=puppetserver $host$ +| rename file-sync-client-service.status.experimental.metrics.average-clone-time as "Avg Clone Time", file-sync-client-service.status.experimental.metrics.average-fetch-time as "Avg Fetch Time", file-sync-client-service.status.experimental.metrics.average-sync-clean-check-time as "Avg Sync Clean Time", file-sync-client-service.status.experimental.metrics.average-sync-time as "Avg Sync Time" +| timechart span=300s values("Avg Clone Time") as "Avg Clone Time" values("Avg Fetch Time") as "Avg Fetch Time" values("Avg Sync Clean Time") as "Avg Sync Clean Time" values("Avg Sync Time") as "Avg Sync Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + PuppetDB Heap Memory + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename status-service.status.experimental.jvm-metrics.heap-memory.committed as "Committed Memory", status-service.status.experimental.jvm-metrics.heap-memory.used as "Used Memory", status-service.status.experimental.jvm-metrics.up-time-ms as "Uptime" +| eval 'Committed Memory'='Committed Memory'/1048576 +| eval 'Used Memory'='Used Memory'/1048576 +| eval 'Uptime'='Uptime'/3600000 +| timechart span=300s values('Committed Memory') as "Committed Memory" values('Used Memory') as "Used Memory" list('Uptime') as "Uptime" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + PuppetDB Non-Heap Memory + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename status-service.status.experimental.jvm-metrics.non-heap-memory.committed as Committed_Memory, status-service.status.experimental.jvm-metrics.non-heap-memory.used as Used_Memory +| eval Committed_Memory=Committed_Memory/1048576 +| eval Used_Memory=Used_Memory/1048576 +| timechart span=300s values(Committed_Memory) as "Committed Memory" values(Used_Memory) as "Used Memory" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + PuppetDB CPU + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename status-service.status.experimental.jvm-metrics.cpu-usage as PuppetDB_CPU +| timechart span=300s values(PuppetDB_CPU) as "CPU Usage" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + Commands Per Second + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename global_processed.FiveMinuteRate as "Commands per Second" +| eval 'Commands per Second'='Commands per Second'/300 +| timechart span=300s list('Commands per Second') as "Commands per Second" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + Command Processing Time + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename global_processing-time.95thPercentile as "Command Processing Time" +| timechart span=300s list("Command Processing Time") as "Command Processing Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + Queue Depth + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename puppetdb-status.status.queue_depth as "Queue Depth" +| timechart span=300s list("Queue Depth") as "Queue Depth" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + Replace Catalog Time + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename storage_replace-catalog-time.95thPercentile as "Replace Catalog Time" +| timechart span=300s list("Replace Catalog Time") as "Replace Catalog Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + Replace Facts Time + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename storage_replace-facts-time.95thPercentile as "Replace Facts Time" +| timechart span=300s list("Replace Facts Time") as "Replace Facts Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + Store Report Time + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename storage_store-report-time.95thPercentile as "Store Report Time" +| timechart span=300s list("Store Report Time") as "Store Report Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + GC CPU Usage + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename status-service.status.experimental.jvm-metrics.gc-cpu-usage as 'GC_CPU_Usage' +| timechart span=300s list('GC_CPU_Usage') as "GC CPU Usage" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Performance + + GC Stats + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename "status-service.status.experimental.jvm-metrics.gc-stats.PS MarkSweep.count" as 'Count', "status-service.status.experimental.jvm-metrics.gc-stats.PS MarkSweep.last-gc-info.duration-ms" as 'Duration' +| timechart span=300s list('Count') as "Count" list('Duration') as "Duration" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Workload + + Average Command Persistence Time + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename global_message-persistence-time.95thPercentile as "Command Persistence Time" +| timechart span=300s avg("Command Persistence Time") as "Average Command Persistence Time" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Workload + + Average Read Duration + + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename PDBReadPool_pool_Usage.95thPercentile as "Read Duration" +| timechart span=300s avg("Read Duration") as "Average Read Duration" + -24h@h + now + 1 + 5m + delay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PuppetDB Workload + + Peak Read Pool Wait - `puppet_metrics_index` sourcetype="puppet:metrics"| search pe_service="puppetdb" | spath "status-service.state" output=state | table state | head 1 | rename state as "PuppetDB Status" + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename PDBReadPool_pool_Wait.999thPercentile as "Read Pool Wait" +| timechart span=300s values("Read Pool Wait") as "Peak Read Pool Wait" -24h@h now 1 + 5m + delay - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - PuppetDB Sync Status - + + PuppetDB Workload + + Read Pool Pending Connections - `puppet_metrics_index` sourcetype="puppet:metrics" | fields host puppetdb-status.service_version puppetdb-status.status.maintenance_mode? puppetdb-status.status.queue_depth puppetdb-status.status.rbac_status puppetdb-status.status.read_db_up? puppetdb-status.status.write_db_up? puppetdb-status.status.sync_status.state puppetdb-status.service_version status-service.state| top limit=20 "puppetdb-status.status.sync_status.state" | rename "puppetdb-status.status.sync_status.state" as "PuppetDB Sync Status" + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename PDBReadPool_pool_PendingConnections.Value as "Read Pool Pending" +| timechart span=300s values("Read Pool Pending") as "Read Pool Pending Connections" -24h@h now 1 + 5m + delay - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - PuppetServer Status - + + PuppetDB Workload + + Average Write Duration - `puppet_metrics_index` sourcetype="puppet:metrics"| search pe_service="puppetserver" | spath "status-service.state" output=state | table state | head 1 | rename state as "PuppetServer Status" + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename PDBWritePool_pool_Usage.95thPercentile as "Write Duration" +| timechart span=300s avg("Write Duration") as "Average Write Duration" -24h@h now 1 + 5m + delay - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - Orchestrator Status - + + PuppetDB Workload + + Peak Write Pool Wait - `puppet_metrics_index` sourcetype="puppet:metrics"| search pe_service="orchestrator" | spath "status-service.state" output=state | table state | head 1 | rename state as "Orchestrator Status" + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename PDBWritePool_pool_Wait.999thPercentile as "Write Pool Wait" +| timechart span=300s values("Write Pool Wait") as "Peak Write Pool Wait" -24h@h now 1 + 5m + delay - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - PuppetServer - Average API Query Duration per Minute + + PuppetDB Workload + Write Pool Pending Connections - `puppet_metrics_index` sourcetype="puppet:metrics"| search pe_service=puppetserver | timechart avg(api-query-duration) span=60s + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename PDBWritePool_pool_PendingConnections.Value as "Write Pool Pending" +| timechart span=300s values("Write Pool Pending") as "Write Pool Pending Connections" -24h@h now 1 + 5m + delay + + @@ -77,7 +1737,7 @@ - + @@ -93,23 +1753,34 @@ + - - PuppetDB - Average API Query Duration per Minute + + + + PuppetDB Workload + Global Discards - `puppet_metrics_index` sourcetype="puppet:metrics"| search pe_service=puppetdb | timechart avg(api-query-duration) span=60s + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename global_discarded.OneMinuteRate as "Global Discards" +| timechart span=300s values("Global Discards") as "Global Discards" -24h@h now 1 + 5m + delay + + @@ -119,7 +1790,7 @@ - + @@ -135,25 +1806,32 @@ + - - - - Orchestrator - Average API Query Duration per minute + + PuppetDB Workload + Global Fatals - `puppet_metrics_index` sourcetype="puppet:metrics"| search pe_service=orchestrator | timechart avg(api-query-duration) span=60s - @d + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=puppetdb $host$ +| rename global_fatal.OneMinuteRate as "Global Fatals" +| timechart span=300s values("Global Fatals") as "Global Fatals" + -24h@h now 1 + 5m + delay + + @@ -163,7 +1841,7 @@ - + @@ -179,6 +1857,7 @@ + @@ -186,71 +1865,188 @@ - - PuppetDB Write Status - + + Orchestrator Performance + + Orchestrator Heap Memory - `puppet_metrics_index` sourcetype="puppet:metrics" | search pe_service="puppetdb" | stats latest(puppetdb-status.status.write_db_up?) | rename latest(puppetdb-status.status.write_db_up?) as PuppetDB_Write_Status | eval PuppetDB_Write_Status=if(PuppetDB_Write_Status="true","Normal",status) + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=orchestrator $host$ +| rename status-service.status.experimental.jvm-metrics.heap-memory.committed as Committed_Memory, status-service.status.experimental.jvm-metrics.heap-memory.used as Used_Memory, status-service.status.experimental.jvm-metrics.up-time-ms as Uptime +| eval Committed_Memory=Committed_Memory/1048576 +| eval Used_Memory=Used_Memory/1048576 +| eval Uptime=Uptime/3600000 +| timechart span=300s values(Committed_Memory) as "Committed Memory" values(Used_Memory) as "Used Memory" list(Uptime) as "Uptime" -24h@h now 1 + 5m + delay - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - PuppetDB Read Status - + + Orchestrator Performance + + Orchestrator Non-Heap Memory - `puppet_metrics_index` sourcetype="puppet:metrics" | search pe_service="puppetdb" | stats latest(puppetdb-status.status.read_db_up?) | rename latest(puppetdb-status.status.read_db_up?) as PuppetDB_Read_Status | eval PuppetDB_Read_Status=if(PuppetDB_Read_Status="true","Normal",status) + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=orchestrator $host$ +| rename status-service.status.experimental.jvm-metrics.non-heap-memory.committed as Committed_Memory, status-service.status.experimental.jvm-metrics.non-heap-memory.used as Used_Memory +| eval Committed_Memory=Committed_Memory/1048576 +| eval Used_Memory=Used_Memory/1048576 +| timechart span=300s values(Committed_Memory) as "Committed Memory" values(Used_Memory) as "Used Memory" -24h@h now 1 + 5m + delay - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - PuppetDB RBAC Status - - - `puppet_metrics_index` sourcetype="puppet:metrics" | search pe_service="puppetdb" | head 1 | stats latest(puppetdb-status.status.rbac_status) | rename latest(puppetdb-status.status.rbac_status) as PuppetDB_RBAC_Status | eval PuppetDB_RBAC_Status=if(PuppetDB_RBAC_Status="running","Normal",status) - -24h@h - now - 1 - - - - - - Maintenance Mode Status - + + Orchestrator Performance + + GC CPU Usage - `puppet_metrics_index` sourcetype="puppet:metrics" | search pe_service="puppetdb" | head 1 | stats latest(puppetdb-status.status.maintenance_mode?) | rename latest(puppetdb-status.status.maintenance_mode?) as PuppetDB_Maintenance_Mode | eval PuppetDB_Maintenance_Mode=if(PuppetDB_Maintenance_Mode="false","Not in Maintenance Mode",status) + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=orchestrator $host$ +| rename status-service.status.experimental.jvm-metrics.gc-cpu-usage as 'GC_CPU_Usage' +| timechart span=300s list('GC_CPU_Usage') as "GC CPU Usage" -24h@h now 1 + 5m + delay - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - - - - PuppetDB Queue Depth + + Orchestrator Performance + GC Stats - `puppet_metrics_index` sourcetype="puppet:metrics" | timechart span=1h sum(puppetdb-status.status.queue_depth) | rename sum(puppetdb-status.status.queue_depth) as "Queue Depth" | predict "Queue Depth" future_timespan=20 + `puppet_metrics_index` sourcetype="puppet:metrics" +| search pe_service=orchestrator $host$ +| rename "status-service.status.experimental.jvm-metrics.gc-stats.PS MarkSweep.count" as 'Count', "status-service.status.experimental.jvm-metrics.gc-stats.PS MarkSweep.last-gc-info.duration-ms" as 'Duration' +| timechart span=300s list('Count') as "Count" list('Duration') as "Duration" -24h@h now 1 + 5m + delay + + @@ -258,13 +2054,14 @@ - + - + + @@ -276,10 +2073,11 @@ + - \ No newline at end of file +
\ No newline at end of file