Skip to content

Instantly share code, notes, and snippets.

@allanbatista
Created August 15, 2018 17:41
Show Gist options
  • Save allanbatista/b7a4e27875d7dd7b28bf1148dad616f2 to your computer and use it in GitHub Desktop.
Save allanbatista/b7a4e27875d7dd7b28bf1148dad616f2 to your computer and use it in GitHub Desktop.
Update multiples visualizations with name and new pattern index
require 'json'
require 'faraday'
conn = Faraday.new(url: 'http://localhost:9200') # create a new Connection with base URL
conn.basic_auth('username', 'password') # set the Authentication header
response = conn.get('/.kibana/_search?q=type:visualization&size=200')
JSON.parse(response.body)["hits"]["hits"].each do |doc|
next if doc["_source"]["type"] != "visualization"
source = doc["_source"]
source["visualization"]["title"] = "#{source['visualization']['title']} [Minos]" unless source["visualization"]["title"].include?("Minos")
parsed = JSON.parse(source["visualization"]["visState"])
parsed["params"]["index_pattern"] = "minos-metricbeat-*"
source["visualization"]["visState"] = parsed.to_json
puts "/.kibana/doc/#{doc["_id"]}"
conn.put("/.kibana/doc/#{doc["_id"]}", source.to_json, headers={"Content-Type": "application/json"})
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment