Skip to content

Instantly share code, notes, and snippets.

@ijokarumawak
Last active August 31, 2023 04:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ijokarumawak/0dfcc1cca3ad38e1d5aae3b61b787cd4 to your computer and use it in GitHub Desktop.
Save ijokarumawak/0dfcc1cca3ad38e1d5aae3b61b787cd4 to your computer and use it in GitHub Desktop.
AdVEGAnt Calendar - A Vega visualization example to create Kibana filter

AdVEGAnt Calendar

image

This example dashboard contains a Vega visualization, which renders a Christmas tree! When each node in the tree is clicked, a corresponding Kibana filter is created, so that the advent calendar blog post can be seen on the TSVB Markdown on the right hand side.

I was planning to write a post for Japanese Elastic Stack (Elasticsearch) Advent Calendar 2022, but every slot is filled. Nice! So I'm sharing it here... :)

{"attributes":{"fieldAttrs":"{\"products.manufacturer\":{\"count\":1},\"products.price\":{\"count\":1},\"products.product_name\":{\"count\":1},\"total_quantity\":{\"count\":1}}","fieldFormatMap":"{\"taxful_total_price\":{\"id\":\"number\",\"params\":{\"pattern\":\"$0,0.[00]\"}},\"products.price\":{\"id\":\"number\",\"params\":{\"pattern\":\"$0,0.00\"}},\"taxless_total_price\":{\"id\":\"number\",\"params\":{\"pattern\":\"$0,0.00\"}},\"products.taxless_price\":{\"id\":\"number\",\"params\":{\"pattern\":\"$0,0.00\"}},\"products.taxful_price\":{\"id\":\"number\",\"params\":{\"pattern\":\"$0,0.00\"}},\"products.min_price\":{\"id\":\"number\",\"params\":{\"pattern\":\"$0,0.00\"}},\"products.base_unit_price\":{\"id\":\"number\",\"params\":{\"pattern\":\"$0,0.00\"}},\"products.base_price\":{\"id\":\"number\",\"params\":{\"pattern\":\"$0,0.00\"}}}","fields":"[]","runtimeFieldMap":"{}","timeFieldName":"order_date","title":"kibana_sample_data_ecommerce","typeMeta":"{}"},"coreMigrationVersion":"8.5.2","id":"0847ada7-fdad-5057-9ba7-8c6c8c3caf90","migrationVersion":{"index-pattern":"8.0.0"},"originId":"ff959d40-b880-11e8-a6d9-e546fe2bba5f","references":[],"type":"index-pattern","updated_at":"2022-01-24T01:52:35.505Z","version":"WzEyNTIzLDJd"}
{"attributes":{"fieldAttrs":"{}","fieldFormatMap":"{}","fields":"[]","name":"advent-calendar-2022","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"advent-calendar-2022","typeMeta":"{}"},"coreMigrationVersion":"8.5.2","id":"50770c9e-750d-448b-be65-543a6759fdcf","migrationVersion":{"index-pattern":"8.0.0"},"references":[],"type":"index-pattern","updated_at":"2022-12-21T08:55:51.071Z","version":"WzgyNTQ2MCwyXQ=="}
{"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"meta\":{\"alias\":\"21\",\"type\":\"custom\",\"key\":\"query\",\"disabled\":false,\"negate\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"term\":{\"_id\":\"21\"}},\"$state\":{\"store\":\"appState\"}}]}"},"optionsJSON":"{\"useMargins\":true,\"syncColors\":false,\"syncTooltips\":false,\"hidePanelTitles\":true}","panelsJSON":"[{\"version\":\"8.5.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":25,\"h\":27,\"i\":\"5c5f32bc-6b5b-4319-9c2c-1599bfd36ba4\"},\"panelIndex\":\"5c5f32bc-6b5b-4319-9c2c-1599bfd36ba4\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"vega\",\"params\":{\"spec\":\"{\\n \\\"$schema\\\": \\\"https://vega.github.io/schema/vega/v5.json\\\",\\n \\\"padding\\\": 0,\\n \\\"signals\\\": [\\n {\\n \\\"name\\\": \\\"createFilter\\\",\\n \\\"on\\\": [\\n {\\n \\\"events\\\": \\\"symbol:click\\\",\\n \\\"update\\\": \\\"kibanaRemoveAllFilters()\\\"\\n },\\n {\\n \\\"events\\\": \\\"symbol:click\\\",\\n \\\"update\\\": \\\"kibanaAddFilter({ term: { \\\\\\\"_id\\\\\\\": datum.id }}, '', datum.id)\\\"\\n }\\n ]\\n }\\n ],\\n \\\"data\\\": [\\n {\\n \\\"name\\\": \\\"tree\\\",\\n \\\"values\\\": [\\n {\\\"id\\\": \\\"25\\\", \\\"parent\\\": null},\\n {\\\"id\\\": \\\"23\\\", \\\"parent\\\": \\\"25\\\"},\\n {\\\"id\\\": \\\"24\\\", \\\"parent\\\": \\\"25\\\"},\\n {\\\"id\\\": \\\"19\\\", \\\"parent\\\": \\\"23\\\"},\\n {\\\"id\\\": \\\"20\\\", \\\"parent\\\": \\\"23\\\"},\\n {\\\"id\\\": \\\"21\\\", \\\"parent\\\": \\\"24\\\"},\\n {\\\"id\\\": \\\"22\\\", \\\"parent\\\": \\\"24\\\"},\\n {\\\"id\\\": \\\"13\\\", \\\"parent\\\": \\\"19\\\"},\\n {\\\"id\\\": \\\"14\\\", \\\"parent\\\": \\\"19\\\"},\\n {\\\"id\\\": \\\"15\\\", \\\"parent\\\": \\\"20\\\"},\\n {\\\"id\\\": \\\"16\\\", \\\"parent\\\": \\\"21\\\"},\\n {\\\"id\\\": \\\"17\\\", \\\"parent\\\": \\\"22\\\"},\\n {\\\"id\\\": \\\"18\\\", \\\"parent\\\": \\\"22\\\"},\\n {\\\"id\\\": \\\"3\\\", \\\"parent\\\": \\\"13\\\"},\\n {\\\"id\\\": \\\"4\\\", \\\"parent\\\": \\\"13\\\"},\\n {\\\"id\\\": \\\"5\\\", \\\"parent\\\": \\\"14\\\"},\\n {\\\"id\\\": \\\"6\\\", \\\"parent\\\": \\\"15\\\"},\\n {\\\"id\\\": \\\"7\\\", \\\"parent\\\": \\\"15\\\"},\\n {\\\"id\\\": \\\"8\\\", \\\"parent\\\": \\\"16\\\"},\\n {\\\"id\\\": \\\"9\\\", \\\"parent\\\": \\\"16\\\"},\\n {\\\"id\\\": \\\"10\\\", \\\"parent\\\": \\\"17\\\"},\\n {\\\"id\\\": \\\"11\\\", \\\"parent\\\": \\\"18\\\"},\\n {\\\"id\\\": \\\"12\\\", \\\"parent\\\": \\\"18\\\"},\\n {\\\"id\\\": \\\"2\\\", \\\"parent\\\": \\\"8\\\"},\\n {\\\"id\\\": \\\"1\\\", \\\"parent\\\": \\\"7\\\"}\\n ],\\n \\\"transform\\\": [\\n {\\\"type\\\": \\\"stratify\\\", \\\"key\\\": \\\"id\\\", \\\"parentKey\\\": \\\"parent\\\"},\\n {\\n \\\"type\\\": \\\"tree\\\",\\n \\\"method\\\": \\\"tidy\\\",\\n \\\"separation\\\": false,\\n \\\"size\\\": [{\\\"signal\\\": \\\"width\\\"}, {\\\"signal\\\": \\\"height\\\"}]\\n }\\n ]\\n },\\n {\\n \\\"name\\\": \\\"links\\\",\\n \\\"source\\\": \\\"tree\\\",\\n \\\"transform\\\": [{\\\"type\\\": \\\"treelinks\\\"}, {\\\"type\\\": \\\"linkpath\\\"}]\\n }\\n ],\\n \\\"scales\\\": [\\n {\\\"name\\\": \\\"color\\\", \\\"type\\\": \\\"ordinal\\\", \\\"range\\\": {\\\"scheme\\\": \\\"category20\\\"}}\\n ],\\n \\\"marks\\\": [\\n {\\n \\\"type\\\": \\\"rect\\\",\\n \\\"encode\\\": {\\n \\\"enter\\\": {\\n \\\"fill\\\": {\\\"value\\\": \\\"#212166\\\"},\\n \\\"x\\\": {\\\"value\\\": 0},\\n \\\"y\\\": {\\\"value\\\": -80},\\n \\\"width\\\": {\\\"signal\\\": \\\"width\\\"},\\n \\\"height\\\": {\\\"signal\\\": \\\"height\\\"}\\n }\\n }\\n },\\n {\\n \\\"type\\\": \\\"path\\\",\\n \\\"from\\\": {\\\"data\\\": \\\"links\\\"},\\n \\\"encode\\\": {\\n \\\"enter\\\": {\\\"stroke\\\": {\\\"value\\\": \\\"brown\\\"}, \\\"strokeWidth\\\": {\\\"value\\\": 10}},\\n \\\"update\\\": {\\\"path\\\": {\\\"field\\\": \\\"path\\\"}}\\n }\\n },\\n {\\n \\\"type\\\": \\\"group\\\",\\n \\\"from\\\": {\\n \\\"facet\\\": {\\\"data\\\": \\\"tree\\\", \\\"name\\\": \\\"day\\\", \\\"groupby\\\": [\\\"id\\\", \\\"x\\\", \\\"y\\\"]}\\n },\\n \\\"encode\\\": {\\\"enter\\\": {\\\"x\\\": {\\\"field\\\": \\\"x\\\"}, \\\"y\\\": {\\\"field\\\": \\\"y\\\"}}},\\n \\\"marks\\\": [\\n {\\n \\\"type\\\": \\\"symbol\\\",\\n \\\"from\\\": {\\\"data\\\": \\\"day\\\"},\\n \\\"encode\\\": {\\n \\\"enter\\\": {\\n \\\"shape\\\": {\\\"signal\\\": \\\"datum.id == '1' || datum.id == '2' ? 'square' : datum.id == '25' ? 'M0,.5L.6,.8L.5,.1L1,-.3L.3,-.4L0,-1L-.3,-.4L-1,-.3L-.5,.1L-.6,.8L0,.5Z' : 'circle'\\\"},\\n \\\"stroke\\\": {\\\"value\\\": \\\"white\\\"},\\n \\\"size\\\": {\\\"signal\\\": \\\"datum.id == '25' ? 12000 : 5000\\\"},\\n \\\"cursor\\\": {\\\"value\\\": \\\"pointer\\\"}\\n },\\n \\\"update\\\": {\\\"fill\\\": {\\\"signal\\\": \\\"datum.id == '1' || datum.id == '2' ? 'brown' : datum.id == '25' ? 'gold' : 'green'\\\"}},\\n \\\"hover\\\": {\\\"fill\\\": {\\\"value\\\": \\\"crimson\\\"}}\\n }\\n },\\n {\\n \\\"type\\\": \\\"text\\\",\\n \\\"from\\\": {\\\"data\\\": \\\"day\\\"},\\n \\\"encode\\\": {\\n \\\"enter\\\": {\\n \\\"align\\\": {\\\"value\\\": \\\"center\\\"},\\n \\\"baseline\\\": {\\\"value\\\": \\\"middle\\\"},\\n \\\"fontSize\\\": {\\\"value\\\": \\\"20\\\"},\\n \\\"text\\\": {\\\"field\\\": \\\"id\\\"},\\n \\\"fill\\\": {\\\"value\\\": \\\"white\\\"},\\n \\\"cursor\\\": {\\\"value\\\": \\\"pointer\\\"}\\n }\\n }\\n }\\n ]\\n }\\n ]\\n}\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"AdVEGAnt Calendar\"},{\"version\":\"8.5.2\",\"type\":\"visualization\",\"gridData\":{\"x\":25,\"y\":0,\"w\":23,\"h\":14,\"i\":\"bd779a35-cb5e-4972-aa0b-cdaf784e35c9\"},\"panelIndex\":\"bd779a35-cb5e-4972-aa0b-cdaf784e35c9\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"last_value\",\"id\":\"201b207f-da65-4646-a011-23cdec7ff01f\",\"type\":\"markdown\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"14bbc08b-fe72-4026-aab3-388d5565bf38\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"c6097d21-7445-4352-869e-debca9a190a1\",\"type\":\"top_hit\",\"field\":\"title.keyword\",\"order_by\":\"@timestamp\",\"size\":1}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"\",\"var_name\":\"\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"c1ad2ab0-810e-11ed-a647-87658a1141e7\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"c1ad2ab1-810e-11ed-a647-87658a1141e7\",\"type\":\"top_hit\",\"field\":\"author.keyword\",\"order_by\":\"@timestamp\",\"size\":1}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"\",\"var_name\":\"\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"d8bbeb00-810f-11ed-a647-87658a1141e7\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"d8bbeb01-810f-11ed-a647-87658a1141e7\",\"type\":\"top_hit\",\"field\":\"url.keyword\",\"order_by\":\"@timestamp\",\"size\":1}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"\",\"var_name\":\"\"}],\"time_field\":\"@timestamp\",\"use_kibana_indexes\":true,\"interval\":\"1d\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"markdown\":\"# {{# top_hit_of_title_keyword.data.raw }}{{[1]}}{{/ top_hit_of_title_keyword.data.raw }}\\n\\nWritten by: {{# top_hit_of_author_keyword.data.raw }}{{[1]}}{{/ top_hit_of_author_keyword.data.raw }}\\n\\n\\n[Read the post]({{# top_hit_of_url_keyword.data.raw }}{{[1]}}{{/ top_hit_of_url_keyword.data.raw }})\",\"background_color_rules\":[{\"id\":\"b50ba2b0-810d-11ed-a647-87658a1141e7\"}],\"index_pattern_ref_name\":\"metrics_bd779a35-cb5e-4972-aa0b-cdaf784e35c9_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}}},\"enhancements\":{}}},{\"version\":\"8.5.2\",\"type\":\"lens\",\"gridData\":{\"x\":25,\"y\":14,\"w\":23,\"h\":13,\"i\":\"2dc98e6a-83dd-4999-bbd3-abc94372c3c2\"},\"panelIndex\":\"2dc98e6a-83dd-4999-bbd3-abc94372c3c2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"50770c9e-750d-448b-be65-543a6759fdcf\",\"name\":\"indexpattern-datasource-layer-6ff16ec3-4097-4fb3-988f-a582fc8a32fe\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"6ff16ec3-4097-4fb3-988f-a582fc8a32fe\",\"accessors\":[\"296c7cd6-6160-41b2-a965-874cd663ba7f\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"55c579b1-900e-4d7a-aeb9-515756c8daf6\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"6ff16ec3-4097-4fb3-988f-a582fc8a32fe\":{\"columns\":{\"55c579b1-900e-4d7a-aeb9-515756c8daf6\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"296c7cd6-6160-41b2-a965-874cd663ba7f\":{\"label\":\"Count of records\",\"customLabel\":false,\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55c579b1-900e-4d7a-aeb9-515756c8daf6\",\"296c7cd6-6160-41b2-a965-874cd663ba7f\"],\"incompleteColumns\":{}}}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}}]","refreshInterval":{"pause":true,"value":0},"timeFrom":"2022-11-30T15:00:00.000Z","timeRestore":true,"timeTo":"2022-12-24T15:00:00.000Z","title":"advent-calendar-2022","version":1},"coreMigrationVersion":"8.5.2","id":"dc037380-80d0-11ed-8464-6d00018f3890","migrationVersion":{"dashboard":"8.5.0"},"references":[{"id":"0847ada7-fdad-5057-9ba7-8c6c8c3caf90","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","type":"index-pattern"},{"id":"50770c9e-750d-448b-be65-543a6759fdcf","name":"bd779a35-cb5e-4972-aa0b-cdaf784e35c9:metrics_bd779a35-cb5e-4972-aa0b-cdaf784e35c9_0_index_pattern","type":"index-pattern"},{"id":"50770c9e-750d-448b-be65-543a6759fdcf","name":"2dc98e6a-83dd-4999-bbd3-abc94372c3c2:indexpattern-datasource-layer-6ff16ec3-4097-4fb3-988f-a582fc8a32fe","type":"index-pattern"}],"type":"dashboard","updated_at":"2022-12-21T09:23:02.612Z","version":"WzgyNzUxMiwyXQ=="}
{"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":3,"missingRefCount":0,"missingReferences":[]}
{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"padding": 0,
"signals": [
{
"name": "createFilter",
"on": [
{
"events": "symbol:click",
"update": "kibanaRemoveAllFilters()"
},
{
"events": "symbol:click",
"update": "kibanaAddFilter({ term: { \"_id\": datum.id }}, '', datum.id)"
}
]
}
],
"data": [
{
"name": "tree",
"values": [
{"id": "25", "parent": null},
{"id": "23", "parent": "25"},
{"id": "24", "parent": "25"},
{"id": "19", "parent": "23"},
{"id": "20", "parent": "23"},
{"id": "21", "parent": "24"},
{"id": "22", "parent": "24"},
{"id": "13", "parent": "19"},
{"id": "14", "parent": "19"},
{"id": "15", "parent": "20"},
{"id": "16", "parent": "21"},
{"id": "17", "parent": "22"},
{"id": "18", "parent": "22"},
{"id": "3", "parent": "13"},
{"id": "4", "parent": "13"},
{"id": "5", "parent": "14"},
{"id": "6", "parent": "15"},
{"id": "7", "parent": "15"},
{"id": "8", "parent": "16"},
{"id": "9", "parent": "16"},
{"id": "10", "parent": "17"},
{"id": "11", "parent": "18"},
{"id": "12", "parent": "18"},
{"id": "2", "parent": "8"},
{"id": "1", "parent": "7"}
],
"transform": [
{"type": "stratify", "key": "id", "parentKey": "parent"},
{
"type": "tree",
"method": "tidy",
"separation": false,
"size": [{"signal": "width"}, {"signal": "height"}]
}
]
},
{
"name": "links",
"source": "tree",
"transform": [{"type": "treelinks"}, {"type": "linkpath"}]
}
],
"scales": [
{"name": "color", "type": "ordinal", "range": {"scheme": "category20"}}
],
"marks": [
{
"type": "rect",
"encode": {
"enter": {
"fill": {"value": "#212166"},
"x": {"value": 0},
"y": {"value": -80},
"width": {"signal": "width"},
"height": {"signal": "height"}
}
}
},
{
"type": "path",
"from": {"data": "links"},
"encode": {
"enter": {"stroke": {"value": "brown"}, "strokeWidth": {"value": 10}},
"update": {"path": {"field": "path"}}
}
},
{
"type": "group",
"from": {
"facet": {"data": "tree", "name": "day", "groupby": ["id", "x", "y"]}
},
"encode": {"enter": {"x": {"field": "x"}, "y": {"field": "y"}}},
"marks": [
{
"type": "symbol",
"from": {"data": "day"},
"encode": {
"enter": {
"shape": {"signal": "datum.id == '1' || datum.id == '2' ? 'square' : datum.id == '25' ? 'M0,.5L.6,.8L.5,.1L1,-.3L.3,-.4L0,-1L-.3,-.4L-1,-.3L-.5,.1L-.6,.8L0,.5Z' : 'circle'"},
"stroke": {"value": "white"},
"size": {"signal": "datum.id == '25' ? 12000 : 5000"},
"cursor": {"value": "pointer"}
},
"update": {"fill": {"signal": "datum.id == '1' || datum.id == '2' ? 'brown' : datum.id == '25' ? 'gold' : 'green'"}},
"hover": {"fill": {"value": "crimson"}}
}
},
{
"type": "text",
"from": {"data": "day"},
"encode": {
"enter": {
"align": {"value": "center"},
"baseline": {"value": "middle"},
"fontSize": {"value": "20"},
"text": {"field": "id"},
"fill": {"value": "white"},
"cursor": {"value": "pointer"}
}
}
}
]
}
]
}
POST advent-calendar-2022/_bulk
{"index":{"_id":"20"}}
{"@timestamp": "2022-12-20T00:00:00+09:00", "title":"eBPF の裏側:プラットフォームの監視とセキュリティのための新しい方法","author":"@shosuz","url":"https://qiita.com/shosuz/items/0b3b64253a284453dd13"}
{"index":{"_id":"21"}}
{"@timestamp": "2022-12-21T00:00:00+09:00", "title":"Elastic で NLPジョブを実装してみた","author":"@tomo_s_el", "url": "https://qiita.com/tomo_s_el/items/49b0c184f0c2249bd8e8"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment