property :exporter, :kind_of => String, :name_property => true
property :port, :kind_of => Integer, :required => [:create]
property :listen_switch, :kind_of => String, :default => "web.listen-address"
+property :listen_type, :kind_of => String, :default => "address"
+property :user, :kind_of => String, :default => "root"
property :options, :kind_of => [String, Array]
+property :environment, :kind_of => Hash, :default => {}
action :create do
systemd_service service_name do
description "Prometheus #{new_resource.exporter} exporter"
type "simple"
- user "root"
+ user new_resource.user
+ environment new_resource.environment
exec_start "#{executable_path} #{executable_options}"
private_tmp true
protect_system "strict"
end
def executable_options
- "--#{new_resource.listen_switch}=#{listen_address} #{Array(new_resource.options).join(' ')}"
+ "--#{new_resource.listen_switch}=#{listen_argument} #{Array(new_resource.options).join(' ')}"
+ end
+
+ def listen_argument
+ case new_resource.listen_type
+ when "address" then listen_address
+ when "url" then "http://#{listen_address}/metrics"
+ end
end
def listen_address