Skip to content

Instantly share code, notes, and snippets.

@blcarlson01
Created September 16, 2022 18:38
Show Gist options
  • Save blcarlson01/9aaaf69c6d5b7f953633fea784385187 to your computer and use it in GitHub Desktop.
Save blcarlson01/9aaaf69c6d5b7f953633fea784385187 to your computer and use it in GitHub Desktop.
Kibana Spaces & ML API Notes
username = ''
password = ''
create_url = "/api/spaces/space"
URL= ':5601'
def requester(**kwargs):
headers = {
"Content-Type": "application/json",
"kbn-xsrf": "True",
} if not "files" in kwargs else {
"kbn-xsrf": "True",
}
auth = (username, password) if (username and password) else None
return requests.request(headers=headers, auth=auth, verify=False, **kwargs)
url = URL + create_url
# Get All Spaces
response = requester(url=url, method="get")
response.json()
# Create Space
def create_space(url, data):
response = requester(url=url, method="post", data=json.dumps(data))
return response
url = URL + create_url
data = {"id": "test2",
"name": "TEST2",
"initials": "LL",
"color": "#6092C0",
"disabledFeatures": ["enterpriseSearch",
"logs",
"infrastructure",
"apm",
"uptime",
"observabilityCases",
"siem"]}
resp = create_space(url, data)
resp.text
# Update Space
def update_space(url, data):
response = requester(url=url, method="put", data=json.dumps(data))
return response
update_url = '/test2'
url = URL + create_url + update_url
data = {"id": "test2",
"name": "AA",
"initials": "AA",
"color": "#6092C0",
"disabledFeatures": ["enterpriseSearch",
"logs",
"infrastructure",
"apm",
"uptime",
"observabilityCases",
"siem"]}
resp = update_space(url, data)
resp.text
# Update Default Space
def update_space(url, data):
response = requester(url=url, method="put", data=json.dumps(data))
return response
update_url = '/default'
url = URL + create_url + update_url
data = {'id': 'default',
'name': 'Default',
"initials": "RR",
'description': 'This is your default space!',
'color': '#00bfb3',
'disabledFeatures': ["enterpriseSearch"]}
resp = update_space(url, data)
resp.text
# Bulk Import ML Jobs
import json
def load_ml_jobs(url, data):
response = requester(url=url, method="post", data=json.dumps(data))
return response
with open('anomaly_detection_jobs.json', 'r') as dfile:
data = json.load(dfile)
ml_url = '/api/ml/jobs/bulk_create'
url = URL + ml_url
resp = load_ml_jobs(url, data)
resp.text
# Open and Start ML Job
def start_ml_job(url, data):
response = requester(url=url, method="post", data=json.dumps(data))
return response
ml_open_job = '/api/ml/anomaly_detectors/netatmo/_open'
url = URL + ml_open_job
resp = start_ml_job(url, {})
print(resp.text)
ml_start_job = '/api/ml/datafeeds/datafeed-netatmo/_start'
url = URL + ml_start_job
resp = start_ml_job(url, {})
resp.text
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment