{"_id":"5a9741947b0db20012469ce9","project":"5633ebff7e9e880d00af1a53","version":{"_id":"5a8fae0268264c001f20cc00","project":"5633ebff7e9e880d00af1a53","__v":4,"createdAt":"2018-02-23T06:00:34.961Z","releaseDate":"2018-02-23T06:00:34.961Z","categories":["5a8fae0268264c001f20cc01","5a8fae0268264c001f20cc02","5a8fae0368264c001f20cc03","5a8fae0368264c001f20cc04","5a8fae0368264c001f20cc05","5a8fae0368264c001f20cc06","5a8fae0368264c001f20cc07","5a8fae0368264c001f20cc08","5a8fae0368264c001f20cc09","5abaa7eb72d6dc0028a07bf3","5b8ee7842790f8000333f9ba","5b8ee8f244a21a00034b5cd9"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"2.0.0","version":"2.0"},"category":{"_id":"5a8fae0268264c001f20cc01","version":"5a8fae0268264c001f20cc00","project":"5633ebff7e9e880d00af1a53","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-10-30T22:34:26.440Z","from_sync":false,"order":0,"slug":"early-project-setup","title":"Bonsai.io Basics"},"user":"5637d336aa96490d00a64f81","githubsync":"","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2018-02-28T23:56:04.833Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":2,"body":"When you provision a Bonsai Elasticsearch cluster, the cluster dashboard has several tabs and features to help you make the most of out of using Elasticsearch. Below is an overview of all the most important pieces of the dashboard, what they mean, and how you use them. Each section header maps to a tab in the cluster dashboard.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Bonsai clusters can be provisioned in a couple of different ways. These instructions are for users who want to be billed directly by Bonsai. If you are a Heroku or Manifold customer and are adding Bonsai to your app, then you will not need these instructions. Instead, check out:\\n\\n* [Getting Started With Heroku](doc:getting-started-with-heroku) \\n* [Getting Started With Manifold](doc:getting-started-with-manifold)\",\n  \"title\": \"Hold up!\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Overview\"\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/87c3414-pic4.png\",\n        \"pic4.png\",\n        1280,\n        1436,\n        \"#1f7a96\"\n      ],\n      \"caption\": \"Cluster overview.\"\n    }\n  ]\n}\n[/block]\nThe overview page shows the basic details of your cluster. You can see your [cluster's status](https://www.elastic.co/guide/en/elasticsearch/guide/current/_cluster_health.html) (which will be green, yellow or red), the region the cluster is provisioned in, the plan level and the version of Elasticsearch it's running.\n\nYou will also see a couple URLs:\n\n* **Full-access URL**: This is the URL to your cluster. It will have a randomly generated username and password in it. You will use this URL to connect to your Elasticsearch cluster.\n* **Kibana URL**: This is the URL to your Kibana app. [Kibana](https://en.wikipedia.org/wiki/Kibana) is a dashboard for exploring your Elasticsearch data; it is included with your Bonsai cluster free of charge. You can paste this link in your browser to be taken to your Kibana app, or you can click the link marked \"Access Kibana.\"\n\nBelow these links, you may see a section like this:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a8f2543-Screen_Shot_2018-03-08_at_12.54.08_AM.png\",\n        \"Screen Shot 2018-03-08 at 12.54.08 AM.png\",\n        2382,\n        518,\n        \"#f3eeee\"\n      ],\n      \"caption\": \"If there is a version upgrade available, you will get a notification about it.\"\n    }\n  ]\n}\n[/block]\nIf there is an available version upgrade, you can take advantage of it by deleting your data and clicking the button to upgrade to the next version.\n\nBelow that, you will see a section marked \"Performance\":\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/7c275d6-Screen_Shot_2018-03-08_at_12.54.19_AM.png\",\n        \"Screen Shot 2018-03-08 at 12.54.19 AM.png\",\n        2396,\n        692,\n        \"#f3f3f3\"\n      ],\n      \"caption\": \"Statistics about your cluster's performance.\"\n    }\n  ]\n}\n[/block]\nThese boxes indicate a number of statistics about your cluster's performance:\n\n* **Number of Requests**: This is the total number of requests your cluster has served in the past 24 hours. If there is a `-`, then there is no data for it. The total is broken out by READ (which is search traffic), and WRITE (which is any operation that creates, updates or deletes data).\n* **Request Median**: This indicates your median latency. The first number is the median response time for all requests, READ is for search traffic, and WRITE is for any operation that creates, updates or deletes data. The median is an important metric because it's more resistant to long tail effects, and gives a better picture of overall performance than averages.\n* **99% of Requests** (may also be 95%): This shows percentiles for response times for all requests, as well as for READ and WRITE traffic. A percentile indicates how much of the data set falls below a particular value. For example, if the p99 time for a cluster is 100ms, that means 99% of all requests are occurring in 100ms or less. This is an important metric for benchmarking, especially with high traffic volumes.\n* **Hours Awake** (not all users): Some users will have an indicator for hours awake. This is a feature of our Hobby plans, which must \"sleep\" for eight hours out of every 24. Paid plans do not have this limitation. Read more about this in [What Is Cluster Sleep?](doc:sleeping-clusters) \n\nFinally, you will see some metrics about usage:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/6feeab7-usage.png\",\n        \"usage.png\",\n        1200,\n        234,\n        \"#f3f3f3\"\n      ],\n      \"caption\": \"Indicators showing actual usage versus plan limitations.\"\n    }\n  ]\n}\n[/block]\nThe display shows your actual usage vs the limits of your plan for a number of metrics:\n\n* **Docs**: This is the total number of documents you have in your index. We're counting _all_ documents, which can sometimes lead to confusion when nested documents are involved. If you have a parent document with three child documents, that counts as four documents, not one. This can be a source of confusion, as Elasticsearch may report different counts based on the endpoint queried.\n* **Data**: This is the disk footprint of your cluster, or the amount of data your cluster is occupying on the servers. \n* **Shards**: This is the number of shards in your cluster. We're counting both primary and replica shards in this display. \n* **Memory**: This is the amount of memory your cluster is occupying on the server.\n[block:api-header]\n{\n  \"title\": \"Metrics\"\n}\n[/block]\nThis tab shows detailed analytics about your cluster's traffic. It will look something like this:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/b1a1041-pic5.png\",\n        \"pic5.png\",\n        1280,\n        1324,\n        \"#e9eaeb\"\n      ],\n      \"caption\": \"The metrics dashboard. A substantial amount of performance and activity statistics are in here.\"\n    }\n  ]\n}\n[/block]\nThere is a lot to unpack here, and we've drafted an entire documentation page for it [here](doc:cluster-metrics).\n[block:api-header]\n{\n  \"title\": \"Manage\"\n}\n[/block]\nThis tab allows you to administer your cluster.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/8dfc630-Screen_Shot_2018-03-28_at_12.44.33_AM.png\",\n        \"Screen Shot 2018-03-28 at 12.44.33 AM.png\",\n        2464,\n        1312,\n        \"#f3f3f3\"\n      ],\n      \"caption\": \"The cluster management section allows you to upgrade/downgrade your cluster's plan.\"\n    }\n  ]\n}\n[/block]\nThe first section is the Settings view, which shows the cluster's region, current plan, and URL.\n\nThe next section is Plan management. If you haven't entered billing information to your account yet, you'll see a blue button to Enter Billing Information. Clicking this will take you to your [Account Management](doc:managing-your-account) page.\n\nIf you have entered billing information, you'll see a few different options for a new plan level:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/1e96912-Screen_Shot_2018-03-08_at_1.20.26_AM.png\",\n        \"Screen Shot 2018-03-08 at 1.20.26 AM.png\",\n        2378,\n        1002,\n        \"#f3f3f3\"\n      ],\n      \"caption\": \"A variety of plans are available.\"\n    }\n  ]\n}\n[/block]\nEach option will give you some important metrics about what the new plan offers in terms of capacity.  Select a new plan, then click the blue Upgrade button.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"We're Pros at Proration\",\n  \"body\": \"When you upgrade or downgrade a cluster's plan, you will not be billed for a month of service on each plan. We will issue a service credit for time unused on the old plan, and a prorated charge for the remainder of your billing period on the new plan. This ensures that your hard earned cash isn't wasted in the process of growing or shrinking the cluster.\"\n}\n[/block]\nThe final section is Log Trimming:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/95790c7-Screen_Shot_2018-03-08_at_1.20.49_AM.png\",\n        \"Screen Shot 2018-03-08 at 1.20.49 AM.png\",\n        2414,\n        546,\n        \"#f3f3f3\"\n      ],\n      \"caption\": \"The log trimming section allows users to specify patterns for automatically purging old data.\"\n    }\n  ]\n}\n[/block]\nIf you're using Bonsai to host logs, or some application that creates regular indices, you can specify a pattern here and Bonsai will automatically purge the oldest index when your plan limits are reached.\n\nFor example, assume you're indexing time-series data, say, number of support tickets in a day. And you're putting these in time-series indices like `support_tickets-201801010000`, `support_tickets-201801020000`, and so on. \n\nWith this feature, you could specify a pattern like `support_tickets-*`, and we'll auto-prune the oldest index first when you reach your plan limits.\n[block:api-header]\n{\n  \"title\": \"Interactive Console\"\n}\n[/block]\nThe Interactive Console is a web-based UI for interacting with your cluster. Think of it like a user-friendly version of `curl`. If you want to try out some queries or experiment with the Elasticsearch API, this is a great place to start:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/9cb5925-console.gif\",\n        \"console.gif\",\n        952,\n        586,\n        \"#06353c\"\n      ],\n      \"caption\": \"The Interactive Console allows users to engage with their cluster via a UI.\"\n    }\n  ]\n}\n[/block]\nThe UI allows the user to select an HTTP verb, enter an endpoint and run the command. The results are shown in the navy console on the right. The box below the verb and endpoint boxes can be used to create a request body.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Beware\",\n  \"body\": \"Some places in the Elasticsearch documentation suggest using a GET request even when passing a request body. An example would be something like:\\n\\n```\\nGET /_search\\n{\\n    \\\"query\\\" : {\\n        \\\"term\\\" : { \\\"user\\\" : \\\"kimchy\\\" }\\n    }\\n}\\n```\\n\\nWithout getting bogged down in pedantry, GET is a questionable verb to use in this case. A POST is more appropriate. It's what the UI is assuming anyway. If you paste in a request body and use a GET verb, the body will be ignored.\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Logs\"\n}\n[/block]\nThe next tab is Streaming Logs. This will show a real-time stream of all the data hitting your cluster. There is also a tab for the Top 20 Slow Requests. This will begin to populate if requests slow down measurably.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/8f46e49-logs.gif\",\n        \"logs.gif\",\n        1206,\n        472,\n        \"#e4e5e3\"\n      ],\n      \"caption\": \"Streaming logs are available as a beta feature.\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Beta!\",\n  \"body\": \"This feature is still in beta and can sometimes have issues. It also does not show a history. We're working on making it better though!\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Access\"\n}\n[/block]\nThis section of the cluster dashboard offers a handful of data protection tools. These are to keep your data and your cluster safe. \n\n### Allowing Read-Only Access\n\nThe first section allows you to enable read-only access to your cluster (production grade plans only).\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/754578c-Screen_Shot_2018-03-27_at_5.01.33_PM.png\",\n        \"Screen Shot 2018-03-27 at 5.01.33 PM.png\",\n        2404,\n        444,\n        \"#f8f7e6\"\n      ],\n      \"caption\": \"Clusters can be set to allow searches without authentication.\"\n    }\n  ]\n}\n[/block]\nBy enabling read-only access, anyone with your _un-authed_ cluster URL can read the data, but creating, updating and destroying data will still require the randomized credentials. \n\nThe primary use case is if your application is using client-side searching. For example, a JavaScript that searches your cluster based on user actions (like autocomplete). Because this happens on the client side, any user could theoretically see your cluster URL. If your authentication credentials are in that URL, a malicious user could modify or delete your data.\n\nThis feature allows you to safely use your cluster URL in client-side applications. Even if a user sniffs the URL, he or she cannot do anything to your data.\n\n### Managing Credentials\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/5aa76e6-Screen_Shot_2018-03-27_at_5.03.34_PM.png\",\n        \"Screen Shot 2018-03-27 at 5.03.34 PM.png\",\n        2398,\n        1090,\n        \"#f4f4f4\"\n      ],\n      \"caption\": \"Cluster credentials can be added, revoked and regenerated.\"\n    }\n  ]\n}\n[/block]\nThe next section is Credential Management. This section allows you to create additional credentials and regenerate your cluster's default credentials. \n\nIn addition to your default credentials, you can create a few other username/password pairs for specific purposes. For example, if you have a short term developer working on your application, you may want to give them their own token. This allows you to revoke it at any time without impacting your application, and if there is a rogue request to your cluster, the logs will show which key was used.\n\n### Managing Supplemental Tokens\n\nTo create a new token, give it a name and click on \"Create Token\"\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/fda5ffd-Screen_Shot_2018-03-21_at_4.30.13_PM.png\",\n        \"Screen Shot 2018-03-21 at 4.30.13 PM.png\",\n        2406,\n        408,\n        \"#f3f3f3\"\n      ],\n      \"caption\": \"Adding a new token.\"\n    }\n  ]\n}\n[/block]\nFor security purposes, the fully-qualified URL will only be displayed once. Copy it, paste it to where ever you'd like to share it, and then click \"Back to Access.\"\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/4aa679f-Screen_Shot_2018-03-27_at_5.04.14_PM.png\",\n        \"Screen Shot 2018-03-27 at 5.04.14 PM.png\",\n        2408,\n        848,\n        \"#f5f5ee\"\n      ],\n      \"caption\": \"Credentials are only displayed once for security.\"\n    }\n  ]\n}\n[/block]\nBack at the Access page, you will now see the new credential listed:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/6d33e0f-Screen_Shot_2018-03-27_at_5.21.25_PM.png\",\n        \"Screen Shot 2018-03-27 at 5.21.25 PM.png\",\n        2402,\n        602,\n        \"#f7f7f7\"\n      ],\n      \"caption\": \"Newly-added credentials take effect immediately.\"\n    }\n  ]\n}\n[/block]\nSupplemental credentials can be revoked at any time by clicking on the Revoke button. This action takes effect immediately.\n\n### Regenerating Your Default Credentials\n\nYou would want to regenerate your default credentials if your fully-qualified URL has been linked (say, if somehow was copy-pasted into an email or, perish the thought, StackOverflow). To do that, simply click the \"Regenerate Credentials\" button. This will instantly regenerate a new, randomized authentication pair.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ef2ab65-revocation.gif\",\n        \"revocation.gif\",\n        1236,\n        562,\n        \"#f3f3e4\"\n      ],\n      \"caption\": \"Regenerating the default credentials allows the old credentials to remain live for 2 minutes. A countdown timer indicates when the old token will be flushed.\"\n    }\n  ]\n}\n[/block]\nThe old credentials will remain active for two minutes or so. After that time the old keys are revoked. The purpose of the two minute warning is to give administrators the opportunity to update their application with the new credentials before the old ones expire.\n[block:api-header]\n{\n  \"title\": \"Deprovision\"\n}\n[/block]\nIf you need to deprovision (destroy) a cluster, all you need is your account password:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/24cdaac-e25f5aa-Dashboard08.png\",\n        \"e25f5aa-Dashboard08.png\",\n        1280,\n        710,\n        \"#f3f3f3\"\n      ],\n      \"caption\": \"Users need to supply their password to destroy a cluster.\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Think Carefully!\",\n  \"body\": \"Once a cluster has been deprovisioned, it is destroyed immediately. The data is deleted, it will instantly stop responding, and all requests will return an HTTP 404. This can not be undone unless you create a new cluster, and then reindex.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"We're Pros at Proration\",\n  \"body\": \"Bonsai bills by cluster. When a cluster is destroyed, a prorated credit is automatically applied to your account. This will be put towards any other clusters you have with us. It will also stop billing if you have no other billable clusters.\"\n}\n[/block]","excerpt":"Learn how to use the Bonsai dashboard to get the most out of your Elasticsearch cluster.","slug":"managing-your-cluster","type":"basic","title":"Managing Your Cluster"}

Managing Your Cluster

Learn how to use the Bonsai dashboard to get the most out of your Elasticsearch cluster.

When you provision a Bonsai Elasticsearch cluster, the cluster dashboard has several tabs and features to help you make the most of out of using Elasticsearch. Below is an overview of all the most important pieces of the dashboard, what they mean, and how you use them. Each section header maps to a tab in the cluster dashboard. [block:callout] { "type": "warning", "body": "Bonsai clusters can be provisioned in a couple of different ways. These instructions are for users who want to be billed directly by Bonsai. If you are a Heroku or Manifold customer and are adding Bonsai to your app, then you will not need these instructions. Instead, check out:\n\n* [Getting Started With Heroku](doc:getting-started-with-heroku) \n* [Getting Started With Manifold](doc:getting-started-with-manifold)", "title": "Hold up!" } [/block] [block:api-header] { "title": "Overview" } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/87c3414-pic4.png", "pic4.png", 1280, 1436, "#1f7a96" ], "caption": "Cluster overview." } ] } [/block] The overview page shows the basic details of your cluster. You can see your [cluster's status](https://www.elastic.co/guide/en/elasticsearch/guide/current/_cluster_health.html) (which will be green, yellow or red), the region the cluster is provisioned in, the plan level and the version of Elasticsearch it's running. You will also see a couple URLs: * **Full-access URL**: This is the URL to your cluster. It will have a randomly generated username and password in it. You will use this URL to connect to your Elasticsearch cluster. * **Kibana URL**: This is the URL to your Kibana app. [Kibana](https://en.wikipedia.org/wiki/Kibana) is a dashboard for exploring your Elasticsearch data; it is included with your Bonsai cluster free of charge. You can paste this link in your browser to be taken to your Kibana app, or you can click the link marked "Access Kibana." Below these links, you may see a section like this: [block:image] { "images": [ { "image": [ "https://files.readme.io/a8f2543-Screen_Shot_2018-03-08_at_12.54.08_AM.png", "Screen Shot 2018-03-08 at 12.54.08 AM.png", 2382, 518, "#f3eeee" ], "caption": "If there is a version upgrade available, you will get a notification about it." } ] } [/block] If there is an available version upgrade, you can take advantage of it by deleting your data and clicking the button to upgrade to the next version. Below that, you will see a section marked "Performance": [block:image] { "images": [ { "image": [ "https://files.readme.io/7c275d6-Screen_Shot_2018-03-08_at_12.54.19_AM.png", "Screen Shot 2018-03-08 at 12.54.19 AM.png", 2396, 692, "#f3f3f3" ], "caption": "Statistics about your cluster's performance." } ] } [/block] These boxes indicate a number of statistics about your cluster's performance: * **Number of Requests**: This is the total number of requests your cluster has served in the past 24 hours. If there is a `-`, then there is no data for it. The total is broken out by READ (which is search traffic), and WRITE (which is any operation that creates, updates or deletes data). * **Request Median**: This indicates your median latency. The first number is the median response time for all requests, READ is for search traffic, and WRITE is for any operation that creates, updates or deletes data. The median is an important metric because it's more resistant to long tail effects, and gives a better picture of overall performance than averages. * **99% of Requests** (may also be 95%): This shows percentiles for response times for all requests, as well as for READ and WRITE traffic. A percentile indicates how much of the data set falls below a particular value. For example, if the p99 time for a cluster is 100ms, that means 99% of all requests are occurring in 100ms or less. This is an important metric for benchmarking, especially with high traffic volumes. * **Hours Awake** (not all users): Some users will have an indicator for hours awake. This is a feature of our Hobby plans, which must "sleep" for eight hours out of every 24. Paid plans do not have this limitation. Read more about this in [What Is Cluster Sleep?](doc:sleeping-clusters) Finally, you will see some metrics about usage: [block:image] { "images": [ { "image": [ "https://files.readme.io/6feeab7-usage.png", "usage.png", 1200, 234, "#f3f3f3" ], "caption": "Indicators showing actual usage versus plan limitations." } ] } [/block] The display shows your actual usage vs the limits of your plan for a number of metrics: * **Docs**: This is the total number of documents you have in your index. We're counting _all_ documents, which can sometimes lead to confusion when nested documents are involved. If you have a parent document with three child documents, that counts as four documents, not one. This can be a source of confusion, as Elasticsearch may report different counts based on the endpoint queried. * **Data**: This is the disk footprint of your cluster, or the amount of data your cluster is occupying on the servers. * **Shards**: This is the number of shards in your cluster. We're counting both primary and replica shards in this display. * **Memory**: This is the amount of memory your cluster is occupying on the server. [block:api-header] { "title": "Metrics" } [/block] This tab shows detailed analytics about your cluster's traffic. It will look something like this: [block:image] { "images": [ { "image": [ "https://files.readme.io/b1a1041-pic5.png", "pic5.png", 1280, 1324, "#e9eaeb" ], "caption": "The metrics dashboard. A substantial amount of performance and activity statistics are in here." } ] } [/block] There is a lot to unpack here, and we've drafted an entire documentation page for it [here](doc:cluster-metrics). [block:api-header] { "title": "Manage" } [/block] This tab allows you to administer your cluster. [block:image] { "images": [ { "image": [ "https://files.readme.io/8dfc630-Screen_Shot_2018-03-28_at_12.44.33_AM.png", "Screen Shot 2018-03-28 at 12.44.33 AM.png", 2464, 1312, "#f3f3f3" ], "caption": "The cluster management section allows you to upgrade/downgrade your cluster's plan." } ] } [/block] The first section is the Settings view, which shows the cluster's region, current plan, and URL. The next section is Plan management. If you haven't entered billing information to your account yet, you'll see a blue button to Enter Billing Information. Clicking this will take you to your [Account Management](doc:managing-your-account) page. If you have entered billing information, you'll see a few different options for a new plan level: [block:image] { "images": [ { "image": [ "https://files.readme.io/1e96912-Screen_Shot_2018-03-08_at_1.20.26_AM.png", "Screen Shot 2018-03-08 at 1.20.26 AM.png", 2378, 1002, "#f3f3f3" ], "caption": "A variety of plans are available." } ] } [/block] Each option will give you some important metrics about what the new plan offers in terms of capacity. Select a new plan, then click the blue Upgrade button. [block:callout] { "type": "info", "title": "We're Pros at Proration", "body": "When you upgrade or downgrade a cluster's plan, you will not be billed for a month of service on each plan. We will issue a service credit for time unused on the old plan, and a prorated charge for the remainder of your billing period on the new plan. This ensures that your hard earned cash isn't wasted in the process of growing or shrinking the cluster." } [/block] The final section is Log Trimming: [block:image] { "images": [ { "image": [ "https://files.readme.io/95790c7-Screen_Shot_2018-03-08_at_1.20.49_AM.png", "Screen Shot 2018-03-08 at 1.20.49 AM.png", 2414, 546, "#f3f3f3" ], "caption": "The log trimming section allows users to specify patterns for automatically purging old data." } ] } [/block] If you're using Bonsai to host logs, or some application that creates regular indices, you can specify a pattern here and Bonsai will automatically purge the oldest index when your plan limits are reached. For example, assume you're indexing time-series data, say, number of support tickets in a day. And you're putting these in time-series indices like `support_tickets-201801010000`, `support_tickets-201801020000`, and so on. With this feature, you could specify a pattern like `support_tickets-*`, and we'll auto-prune the oldest index first when you reach your plan limits. [block:api-header] { "title": "Interactive Console" } [/block] The Interactive Console is a web-based UI for interacting with your cluster. Think of it like a user-friendly version of `curl`. If you want to try out some queries or experiment with the Elasticsearch API, this is a great place to start: [block:image] { "images": [ { "image": [ "https://files.readme.io/9cb5925-console.gif", "console.gif", 952, 586, "#06353c" ], "caption": "The Interactive Console allows users to engage with their cluster via a UI." } ] } [/block] The UI allows the user to select an HTTP verb, enter an endpoint and run the command. The results are shown in the navy console on the right. The box below the verb and endpoint boxes can be used to create a request body. [block:callout] { "type": "warning", "title": "Beware", "body": "Some places in the Elasticsearch documentation suggest using a GET request even when passing a request body. An example would be something like:\n\n```\nGET /_search\n{\n \"query\" : {\n \"term\" : { \"user\" : \"kimchy\" }\n }\n}\n```\n\nWithout getting bogged down in pedantry, GET is a questionable verb to use in this case. A POST is more appropriate. It's what the UI is assuming anyway. If you paste in a request body and use a GET verb, the body will be ignored." } [/block] [block:api-header] { "title": "Logs" } [/block] The next tab is Streaming Logs. This will show a real-time stream of all the data hitting your cluster. There is also a tab for the Top 20 Slow Requests. This will begin to populate if requests slow down measurably. [block:image] { "images": [ { "image": [ "https://files.readme.io/8f46e49-logs.gif", "logs.gif", 1206, 472, "#e4e5e3" ], "caption": "Streaming logs are available as a beta feature." } ] } [/block] [block:callout] { "type": "info", "title": "Beta!", "body": "This feature is still in beta and can sometimes have issues. It also does not show a history. We're working on making it better though!" } [/block] [block:api-header] { "title": "Access" } [/block] This section of the cluster dashboard offers a handful of data protection tools. These are to keep your data and your cluster safe. ### Allowing Read-Only Access The first section allows you to enable read-only access to your cluster (production grade plans only). [block:image] { "images": [ { "image": [ "https://files.readme.io/754578c-Screen_Shot_2018-03-27_at_5.01.33_PM.png", "Screen Shot 2018-03-27 at 5.01.33 PM.png", 2404, 444, "#f8f7e6" ], "caption": "Clusters can be set to allow searches without authentication." } ] } [/block] By enabling read-only access, anyone with your _un-authed_ cluster URL can read the data, but creating, updating and destroying data will still require the randomized credentials. The primary use case is if your application is using client-side searching. For example, a JavaScript that searches your cluster based on user actions (like autocomplete). Because this happens on the client side, any user could theoretically see your cluster URL. If your authentication credentials are in that URL, a malicious user could modify or delete your data. This feature allows you to safely use your cluster URL in client-side applications. Even if a user sniffs the URL, he or she cannot do anything to your data. ### Managing Credentials [block:image] { "images": [ { "image": [ "https://files.readme.io/5aa76e6-Screen_Shot_2018-03-27_at_5.03.34_PM.png", "Screen Shot 2018-03-27 at 5.03.34 PM.png", 2398, 1090, "#f4f4f4" ], "caption": "Cluster credentials can be added, revoked and regenerated." } ] } [/block] The next section is Credential Management. This section allows you to create additional credentials and regenerate your cluster's default credentials. In addition to your default credentials, you can create a few other username/password pairs for specific purposes. For example, if you have a short term developer working on your application, you may want to give them their own token. This allows you to revoke it at any time without impacting your application, and if there is a rogue request to your cluster, the logs will show which key was used. ### Managing Supplemental Tokens To create a new token, give it a name and click on "Create Token" [block:image] { "images": [ { "image": [ "https://files.readme.io/fda5ffd-Screen_Shot_2018-03-21_at_4.30.13_PM.png", "Screen Shot 2018-03-21 at 4.30.13 PM.png", 2406, 408, "#f3f3f3" ], "caption": "Adding a new token." } ] } [/block] For security purposes, the fully-qualified URL will only be displayed once. Copy it, paste it to where ever you'd like to share it, and then click "Back to Access." [block:image] { "images": [ { "image": [ "https://files.readme.io/4aa679f-Screen_Shot_2018-03-27_at_5.04.14_PM.png", "Screen Shot 2018-03-27 at 5.04.14 PM.png", 2408, 848, "#f5f5ee" ], "caption": "Credentials are only displayed once for security." } ] } [/block] Back at the Access page, you will now see the new credential listed: [block:image] { "images": [ { "image": [ "https://files.readme.io/6d33e0f-Screen_Shot_2018-03-27_at_5.21.25_PM.png", "Screen Shot 2018-03-27 at 5.21.25 PM.png", 2402, 602, "#f7f7f7" ], "caption": "Newly-added credentials take effect immediately." } ] } [/block] Supplemental credentials can be revoked at any time by clicking on the Revoke button. This action takes effect immediately. ### Regenerating Your Default Credentials You would want to regenerate your default credentials if your fully-qualified URL has been linked (say, if somehow was copy-pasted into an email or, perish the thought, StackOverflow). To do that, simply click the "Regenerate Credentials" button. This will instantly regenerate a new, randomized authentication pair. [block:image] { "images": [ { "image": [ "https://files.readme.io/ef2ab65-revocation.gif", "revocation.gif", 1236, 562, "#f3f3e4" ], "caption": "Regenerating the default credentials allows the old credentials to remain live for 2 minutes. A countdown timer indicates when the old token will be flushed." } ] } [/block] The old credentials will remain active for two minutes or so. After that time the old keys are revoked. The purpose of the two minute warning is to give administrators the opportunity to update their application with the new credentials before the old ones expire. [block:api-header] { "title": "Deprovision" } [/block] If you need to deprovision (destroy) a cluster, all you need is your account password: [block:image] { "images": [ { "image": [ "https://files.readme.io/24cdaac-e25f5aa-Dashboard08.png", "e25f5aa-Dashboard08.png", 1280, 710, "#f3f3f3" ], "caption": "Users need to supply their password to destroy a cluster." } ] } [/block] [block:callout] { "type": "danger", "title": "Think Carefully!", "body": "Once a cluster has been deprovisioned, it is destroyed immediately. The data is deleted, it will instantly stop responding, and all requests will return an HTTP 404. This can not be undone unless you create a new cluster, and then reindex." } [/block] [block:callout] { "type": "info", "title": "We're Pros at Proration", "body": "Bonsai bills by cluster. When a cluster is destroyed, a prorated credit is automatically applied to your account. This will be put towards any other clusters you have with us. It will also stop billing if you have no other billable clusters." } [/block]