X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/20bb8440eac8354b1831b072dfe6c4263e7ff5d3..15d02990717b0535a2b37633d65b5559c796fd02:/cookbooks/web/templates/default/api-statistics.erb diff --git a/cookbooks/web/templates/default/api-statistics.erb b/cookbooks/web/templates/default/api-statistics.erb index f894af5c4..297a2ef51 100644 --- a/cookbooks/web/templates/default/api-statistics.erb +++ b/cookbooks/web/templates/default/api-statistics.erb @@ -19,7 +19,7 @@ def categorise_uri(line) end end -parser = ApacheLogRegex.new('%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %Dus %{UNIQUE_ID}e %{SSL_PROTOCOL}x %{SSL_CIPHER}x') +parser = ApacheLogRegex.new('%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %Dus %{UNIQUE_ID}e %{SSL_PROTOCOL}x %{SSL_CIPHER}x %{AUTH_METHOD}e') last_write = Time.now statistics = { @@ -28,7 +28,8 @@ statistics = { :count => Hash.new(0), :bytes => Hash.new(0), :seconds => Hash.new(0.0), - :ssl => Hash.new(0) + :ssl => Hash.new(0), + :auth => Hash.new(0) } File::Tail::Logfile.tail("/var/log/apache2/access.log") do |line| @@ -41,6 +42,7 @@ File::Tail::Logfile.tail("/var/log/apache2/access.log") do |line| seconds = hash["%Dus"].to_f / 1000000 protocol = hash["%{SSL_PROTOCOL}x"] cipher = hash["%{SSL_CIPHER}x"] + auth = hash["%{AUTH_METHOD}e"] statistics[:status][status] += 1 statistics[:uri][uri] += 1 @@ -48,6 +50,7 @@ File::Tail::Logfile.tail("/var/log/apache2/access.log") do |line| statistics[:bytes][[uri, status]] += bytes statistics[:seconds][[uri, status]] += seconds statistics[:ssl][[protocol, cipher]] += 1 unless protocol == "-" + statistics[:auth][auth] += 1 unless auth == "-" rescue ApacheLogRegex::ParseError # nil end @@ -91,6 +94,13 @@ File::Tail::Logfile.tail("/var/log/apache2/access.log") do |line| file.puts "api_call_ssl_total{protocol=\"#{protocol}\",cipher=\"#{cipher}\"} #{value}" end + + file.puts "# HELP api_call_auth_method_total Number of calls by authentication method" + file.puts "# TYPE api_call_auth_method_total counter" + + statistics[:auth].each do |method, value| + file.puts "api_call_auth_method_total{method=\"#{method}\"} #{value}" + end end File.rename("/var/lib/prometheus/node-exporter/api.tmp", "/var/lib/prometheus/node-exporter/api.prom")