[
  {
    "path": "Install/config/docker-compose-higee.yml",
    "content": "version: '3'\n\nservices:\n\n  elasticsearch:\n    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4\n    container_name: elasticsearch\n    environment:\n      http.host: '0.0.0.0'\n      network.host: '127.0.0.1'\n      ES_JAVA_OPTS: '-Xms4g -Xmx4g -XX:-AssumeMP'\n      bootstrap.memory_lock: 'true'\n    ulimits:\n      memlock:\n        soft: -1\n        hard: -1\n      nofile:\n        soft: 65536\n        hard: 65536\n      nproc:\n        soft: 4096\n        hard: 4096\n    ports:\n      - \"9200:9200\"\n      - \"9300:9300\"\n    restart: always\n    networks:\n      - elastic\n\n  logstash:\n    image: docker.elastic.co/logstash/logstash-oss:6.2.4\n    container_name: logstash\n    environment:\n        JAVA_OPTS: '-Xms1g -Xmx1g -XX:-AssumeMP'\n    depends_on: ['elasticsearch']\n    networks:\n      - elastic\n    volumes:\n      - ../driver:/usr/share/logstash/driver\n      - ../data:/usr/share/logstash/data\n      - /var/log/nginx:/usr/share/logstash/data2\n      - ../../Week5_Logstash/code:/usr/share/logstash/code\n      - ../../Week5_Logstash/code/input/file/nginx.conf:/usr/share/logstash/pipeline/logstash.conf\n    restart: always\n\n  kibana:\n    image: docker.elastic.co/kibana/kibana-oss:6.2.4\n    container_name: kibana\n    environment:\n      - ELASTICSEARCH_HOST=elasticsearch\n      - ELASTICSEARCH_PORT=9200\n    depends_on: ['elasticsearch']\n    volumes:\n      - ./kibana.yml:/usr/share/kibana/config/kibana.yml\n    ports:\n      - \"5601:5601\"\n    restart: always\n    networks:\n      - elastic\n\nnetworks:\n  elastic:\n    driver: bridge\n"
  },
  {
    "path": "Install/config/docker-compose.yml",
    "content": "version: '3'\n\nservices:\n\n  elasticsearch:\n    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4\n    container_name: elasticsearch\n    environment:\n      http.host: '0.0.0.0'\n      network.host: '127.0.0.1'\n      ES_JAVA_OPTS: '-Xms2g -Xmx2g -XX:-AssumeMP'\n      bootstrap.memory_lock: 'true'\n      reindex.remote.whitelist: \"elasticsearch.higee.co:80\"\n    ulimits:\n      memlock:\n        soft: -1\n        hard: -1\n      nofile:\n        soft: 65536\n        hard: 65536\n      nproc:\n        soft: 4096\n        hard: 4096\n    ports:\n      - \"9200:9200\"\n      - \"9300:9300\"\n    restart: always\n    networks:\n      - elastic\n\n  logstash:\n    image: docker.elastic.co/logstash/logstash-oss:6.2.4\n    container_name: logstash\n    environment:\n        JAVA_OPTS: '-Xms512m -Xmx512m -XX:-AssumeMP'\n    depends_on: ['elasticsearch']\n    volumes:\n      - ../driver:/usr/share/logstash/driver\n      - ../data:/usr/share/logstash/data\n      - ../../Week5_Logstash/code:/usr/share/logstash/code\n    tty: true\n    entrypoint: [\"/bin/bash\"]\n    restart: always\n    networks:\n      - elastic\n\n  kibana:\n    image: docker.elastic.co/kibana/kibana-oss:6.2.4\n    container_name: kibana\n    environment:\n      - ELASTICSEARCH_HOST=elasticsearch\n      - ELASTICSEARCH_PORT=9200\n    depends_on: ['elasticsearch']\n    volumes:\n      - ./kibana.yml:/usr/share/kibana/config/kibana.yml\n    ports:\n      - \"5601:5601\"\n    restart: always\n    networks:\n      - elastic\n\nnetworks:\n  elastic:\n    driver: bridge\n     \n"
  },
  {
    "path": "Install/config/kibana.yml",
    "content": "#Kibana is served by a back end server. This setting specifies the port to use.\n#server.port: 5601\n\n# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.\n# The default is 'localhost', which usually means remote machines will not be able to connect.\n# To allow connections from remote users, set this parameter to a non-loopback address.\nserver.host: \"0.0.0.0\"\n\n# Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects\n# the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests\n# to Kibana. This setting cannot end in a slash.\n#server.basePath: \"\"\n\n# The maximum payload size in bytes for incoming server requests.\n#server.maxPayloadBytes: 1048576\n\n# The Kibana server's name.  This is used for display purposes.\n#server.name: \"your-hostname\"\n\n# The URL of the Elasticsearch instance to use for all your queries.\nelasticsearch.url: \"http://elasticsearch:9200\"\n\n# When this setting's value is true Kibana uses the hostname specified in the server.host\n# setting. When the value of this setting is false, Kibana uses the hostname of the host\n# that connects to this Kibana instance.\n#elasticsearch.preserveHost: true\n\n# Kibana uses an index in Elasticsearch to store saved searches, visualizations and\n# dashboards. Kibana creates a new index if the index doesn't already exist.\n#kibana.index: \".kibana\"\n\n# The default application to load.\n#kibana.defaultAppId: \"discover\"\n\n# If your Elasticsearch is protected with basic authentication, these settings provide\n# the username and password that the Kibana server uses to perform maintenance on the Kibana\n# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which\n# is proxied through the Kibana server.\n#elasticsearch.username: \"user\"\n#elasticsearch.password: \"pass\"\n\n# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.\n# These settings enable SSL for outgoing requests from the Kibana server to the browser.\n#server.ssl.enabled: false\n#server.ssl.certificate: /path/to/your/server.crt\n#server.ssl.key: /path/to/your/server.key\n\n# Optional settings that provide the paths to the PEM-format SSL certificate and key files.\n# These files validate that your Elasticsearch backend uses the same key files.\n#elasticsearch.ssl.certificate: /path/to/your/client.crt\n#elasticsearch.ssl.key: /path/to/your/client.key\n\n# Optional setting that enables you to specify a path to the PEM file for the certificate\n# authority for your Elasticsearch instance.\n#elasticsearch.ssl.certificateAuthorities: [ \"/path/to/your/CA.pem\" ]\n\n# To disregard the validity of SSL certificates, change this setting's value to 'none'.\n#elasticsearch.ssl.verificationMode: full\n\n# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of\n# the elasticsearch.requestTimeout setting.\n#elasticsearch.pingTimeout: 1500\n\n# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value\n# must be a positive integer.\n#elasticsearch.requestTimeout: 30000\n\n# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side\n# headers, set this value to [] (an empty list).\n#elasticsearch.requestHeadersWhitelist: [ authorization ]\n\n# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten\n# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration.\n#elasticsearch.customHeaders: {}\n\n# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.\n#elasticsearch.shardTimeout: 0\n\n# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.\n#elasticsearch.startupTimeout: 5000\n\n# Specifies the path where Kibana creates the process ID file.\n#pid.file: /var/run/kibana.pid\n\n# Enables you specify a file where Kibana stores log output.\n#logging.dest: stdout\n\n# Set the value of this setting to true to suppress all logging output.\n#logging.silent: false\n\n# Set the value of this setting to true to suppress all logging output other than error messages.\n#logging.quiet: false\n\n# Set the value of this setting to true to log all events, including system usage information\n# and all requests.\n#logging.verbose: false\n\n# Set the interval in milliseconds to sample system and process performance\n# metrics. Minimum is 100ms. Defaults to 5000.\n#ops.interval: 5000\n\n# The default locale. This locale can be used in certain circumstances to substitute any missing\n# translations.\n#i18n.defaultLocale: \"en\"\n\nregionmap:\n  layers:\n  - name: \"Korea City\"\n    url: \"https://s3.ap-northeast-2.amazonaws.com/higee-map/korea.geojson\"\n    fields:\n      - name: \"name\"\n        description: \"City name\"\n"
  },
  {
    "path": "Install/data/access.log",
    "content": "2018-02-05T05:49:53.859060Z 172.30.39.133 0.079 200 \"GET https://helloworld.com/users/1 HTTP/1.1\"\n2018-02-05T06:49:53.859060Z 172.29.43.253 0.1 404 \"GET https://helloworld.com/users/3 HTTP/1.1\"\n2018-02-05T07:49:53.859060Z 172.30.40.210 0.052 503 \"GET https://helloworld.com/users/2 HTTP/1.1\"\n2018-02-05T08:49:53.859060Z 172.31.40.131 0.038 200 \"POST https://helloworld.com/users/5 HTTP/1.1\"\n"
  },
  {
    "path": "Install/data/access2.log",
    "content": "2018-09-10T05:49:22.859Z 178.73.215.171 0.079 200 \"GET https://helloworld.com/users/1 HTTP/1.1\"\n2018-09-10T16:51:42.119Z 115.127.73.2 0.1 404 \"GET https://helloworld.com/users/3 HTTP/1.1\"\n2018-09-10T07:41:39.239Z 207.148.120.201 0.052 503 \"GET https://helloworld.com/users/2 HTTP/1.1\"\n2018-09-10T08:09:03.779Z 93.117.2.7 0.038 200 \"POST https://helloworld.com/users/5 HTTP/1.1\"\n2018-09-10T08:19:13.989Z 93.115.2.7 0.038 200 \"POST https://helloworld.com/users/5 HTTP/1.1\"\n"
  },
  {
    "path": "Install/data/apache.log",
    "content": "127.0.0.1 - - [13/Dec/2015:03:02:45 -0800] \"GET /xampp/status.php HTTP/1.1\" 200 891 \"http://cadenza/xampp/navi.php\" \"Mozilla/5.0 (Macintosh; Intel Mac OSX 10.9; rv:25.0) Gecko/20100101 Firefox/25.0\"\n123.222.333.123 HOME - [01/Feb/1998:01:08:46 -0800] \"GET /bannerad/ad.htm HTTP/1.0\" 200 2808 \"http://www.referrer.com/bannerad/ba_intro.htm\" \"Mozilla/4.01 (Macintosh; I; PPC)\"\ndaum.net HOME - [01/Apr/1998:01:09:14 -0800] \"GET /bannerad/click.htm HTTP/1.0\" 200 2070 \"http://www.referrer.com/bannerad/menu.htm\" \"Mozilla/4.01 (Macintosh; I; PPC)\"\n111.222.333.123 AWAY - [01/Apr/1998:01:09:14 -0800] \"GET /bannerad/click.htm HTTP/1.0\" 200 2070 \"http://www.referrer.com/bannerad/menu.htm\" \"Mozilla/4.01 (Macintosh; I; PPC)\"\nunicomp6.unicomp.net AWAY - [01/Apr/1998:01:09:14 -0800] \"GET /bannerad/click.htm HTTP/1.0\" 200 2070 \"http://www.referrer.com/bannerad/menu.htm\" \"Mozilla/4.01 (Macintosh; I; PPC)\"\n123.222.333.123 AWAY - [01/Feb/2003:01:08:53 -0800] \"GET /bannerad/ad7.gif HTTP/1.0\" 200 332 \"http://www.referrer.com/bannerad/ba_ad.htm\" \"Mozilla/4.01 (Macintosh; I; PPC)\"\n"
  },
  {
    "path": "Install/data/date.log",
    "content": "2018-02-12T16:03:38 Ben\n2018-02-13T03:25:31 John\n2018-02-14T13:31:11 Leo\n"
  },
  {
    "path": "Install/data/ip-address.log",
    "content": "13.124.230.195:5601\n13.124.230.195:3306\n13.124.230.195:9200\n13.124.230.195:9300"
  },
  {
    "path": "Install/data/test.csv",
    "content": "customer_card,seller_site,seller_rating,customer_sex,product_price,product_quantity,customer_age,customer_location,date_order,date_delivery,product_item,product_gps_lat,product_gps_lon\n시티,옥션,3,남성,29000,4,46,경기도,2018-01-09T03:08:32,2018-01-12T19:23:32,가디건,37.5656494,126.868678\n국민,옥션,1,남성,0,2,26,경기도,2018-01-19T03:08:32,2018-01-23T19:23:32,가디건,37.5556494,126.898678\n시티,쿠팡,2,여성,10,4,46,서울특별시,2017-01-10T03:08:32,2017-11-12T19:23:32,가디건,37.50256494,127.038678\n하나,11번가,5,남성,29000,4,46,경기도,2018-01-09T03:08:32,2018-01-12T19:23:32,셔츠,37.5656494,126.868678\n하나,11번가,1,남성,0,2,26,경기도,2018-01-19T03:08:32,2018-01-23T19:23:32,니트,37.5556494,126.898678\n우리,쿠팡,2,여성,1000,4,46,서울특별시,2017-01-10T03:08:32,2017-11-12T19:23:32,청바지,37.50256494,127.038678\n시티,위메프,3,남성,3000,4,46,경기도,2018-01-09T03:08:32,2018-01-12T19:23:32,가디건,37.5656494,126.868678\n국민,위메프,3,남성,5000,2,26,경기도,2018-01-19T03:08:32,2018-01-23T19:23:32,셔츠,37.5556494,126.898678\n우리,쿠팡,3,여성,10000,4,46,서울특별시,2017-01-10T03:08:32,2017-11-12T19:23:32,셔츠,37.50256494,127.038678\n국민,옥션,4,남성,290000,4,46,경기도,2018-01-09T03:08:32,2018-01-12T19:23:32,셔츠,37.5656494,126.868678\n국민,GS샵,5,남성,1000,2,26,경기도,2018-01-19T03:08:32,2018-01-23T19:23:32,셔츠,37.5556494,126.898678\n시티,GS샵,1,여성,15000,4,46,서울특별시,2017-01-10T03:08:32,2017-11-12T19:23:32,가디건,37.50256494,127.038678\n"
  },
  {
    "path": "Install/data/titanic-header.csv",
    "content": "Index,Name,Survival,Pclass,Sex,Age,SibSp,Parch,Ticket,Fare,Embarked\n1,Braund,0,3,male,22,1,0,A/5 21171,7.25,S\n2,Cumings,1,1,female,38,1,0,PC 17599,71.2833,C\n3,Heikkinen,1,3,female,26,0,0,STON/O2. 3101282,7.925,S\n"
  },
  {
    "path": "Install/data/titanic.csv",
    "content": "1,Braund,0,3,male,22,1,0,A/5 21171,7.25,S\n2,Cumings,1,1,female,38,1,0,PC 17599,71.2833,C\n3,Heikkinen,1,3,female,26,0,0,STON/O2. 3101282,7.925,S\n4,Futrelle,1,1,female,35,1,0,113803,53.1,S\n5,Allen,0,3,male,35,0,0,373450,8.05,S\n6,Moran,0,3,male,29.69911765,0,0,330877,8.4583,Q\n7,McCarthy,0,1,male,54,0,0,17463,51.8625,S\n8,Palsson,0,3,male,2,3,1,349909,21.075,S\n9,Johnson,1,3,female,27,0,2,347742,11.1333,S\n10,Nasser,1,2,female,14,1,0,237736,30.0708,C\n11,Sandstrom,1,3,female,4,1,1,PP 9549,16.7,S\n12,Bonnell,1,1,female,58,0,0,113783,26.55,S\n13,Saundercock,0,3,male,20,0,0,A/5. 2151,8.05,S\n14,Andersson,0,3,male,39,1,5,347082,31.275,S\n15,Vestrom,0,3,female,14,0,0,350406,7.8542,S\n16,Hewlett,1,2,female,55,0,0,248706,16,S\n17,Rice,0,3,male,2,4,1,382652,29.125,Q\n18,Williams,1,2,male,29.69911765,0,0,244373,13,S\n19,Vander Planke,0,3,female,31,1,0,345763,18,S\n20,Masselmani,1,3,female,29.69911765,0,0,2649,7.225,C\n21,Fynney,0,2,male,35,0,0,239865,26,S\n22,Beesley,1,2,male,34,0,0,248698,13,S\n23,McGowan,1,3,female,15,0,0,330923,8.0292,Q\n24,Sloper,1,1,male,28,0,0,113788,35.5,S\n25,Palsson,0,3,female,8,3,1,349909,21.075,S\n26,Asplund,1,3,female,38,1,5,347077,31.3875,S\n27,Emir,0,3,male,29.69911765,0,0,2631,7.225,C\n28,Fortune,0,1,male,19,3,2,19950,263,S\n29,O'Dwyer,1,3,female,29.69911765,0,0,330959,7.8792,Q\n30,Todoroff,0,3,male,29.69911765,0,0,349216,7.8958,S\n31,Uruchurtu,0,1,male,40,0,0,PC 17601,27.7208,C\n32,Spencer,1,1,female,29.69911765,1,0,PC 17569,146.5208,C\n33,Glynn,1,3,female,29.69911765,0,0,335677,7.75,Q\n34,Wheadon,0,2,male,66,0,0,C.A. 24579,10.5,S\n35,Meyer,0,1,male,28,1,0,PC 17604,82.1708,C\n36,Holverson,0,1,male,42,1,0,113789,52,S\n37,Mamee,1,3,male,29.69911765,0,0,2677,7.2292,C\n38,Cann,0,3,male,21,0,0,A./5. 2152,8.05,S\n39,Vander Planke,0,3,female,18,2,0,345764,18,S\n40,Nicola-Yarred,1,3,female,14,1,0,2651,11.2417,C\n41,Ahlin,0,3,female,40,1,0,7546,9.475,S\n42,Turpin,0,2,female,27,1,0,11668,21,S\n43,Kraeff,0,3,male,29.69911765,0,0,349253,7.8958,C\n44,Laroche,1,2,female,3,1,2,SC/Paris 2123,41.5792,C\n45,Devaney,1,3,female,19,0,0,330958,7.8792,Q\n46,Rogers,0,3,male,29.69911765,0,0,S.C./A.4. 23567,8.05,S\n47,Lennon,0,3,male,29.69911765,1,0,370371,15.5,Q\n48,O'Driscoll,1,3,female,29.69911765,0,0,14311,7.75,Q\n49,Samaan,0,3,male,29.69911765,2,0,2662,21.6792,C\n50,Arnold-Franchi,0,3,female,18,1,0,349237,17.8,S\n"
  },
  {
    "path": "Install/data/titanic2.csv",
    "content": "51,Panula,0,3,male,7,4,1,3101295,39.6875,S\n52,Nosworthy,0,3,male,21,0,0,A/4. 39886,7.8,S\n53,Harper,1,1,female,49,1,0,PC 17572,76.7292,C\n54,Faunthorpe,1,2,female,29,1,0,2926,26,S\n55,Ostby,0,1,male,65,0,1,113509,61.9792,C\n56,Woolner,1,1,male,29.69911765,0,0,19947,35.5,S\n57,Rugg,1,2,female,21,0,0,C.A. 31026,10.5,S\n58,Novel,0,3,male,28.5,0,0,2697,7.2292,C\n59,West,1,2,female,5,1,2,C.A. 34651,27.75,S\n60,Goodwin,0,3,male,11,5,2,CA 2144,46.9,S\n61,Sirayanian,0,3,male,22,0,0,2669,7.2292,C\n62,Icard,1,1,female,38,0,0,113572,80,C\n63,Harris,0,1,male,45,1,0,36973,83.475,S\n64,Skoog,0,3,male,4,3,2,347088,27.9,S\n65,Stewart,0,1,male,29.69911765,0,0,PC 17605,27.7208,C\n66,Moubarek,1,3,male,29.69911765,1,1,2661,15.2458,C\n67,Nye,1,2,female,29,0,0,C.A. 29395,10.5,S\n68,Crease,0,3,male,19,0,0,S.P. 3464,8.1583,S\n69,Andersson,1,3,female,17,4,2,3101281,7.925,S\n70,Kink,0,3,male,26,2,0,315151,8.6625,S\n71,Jenkin,0,2,male,32,0,0,C.A. 33111,10.5,S\n72,Goodwin,0,3,female,16,5,2,CA 2144,46.9,S\n73,Hood,0,2,male,21,0,0,S.O.C. 14879,73.5,S\n74,Chronopoulos,0,3,male,26,1,0,2680,14.4542,C\n75,Bing,1,3,male,32,0,0,1601,56.4958,S\n76,Moen,0,3,male,25,0,0,348123,7.65,S\n77,Staneff,0,3,male,29.69911765,0,0,349208,7.8958,S\n78,Moutal,0,3,male,29.69911765,0,0,374746,8.05,S\n79,Caldwell,1,2,male,0.83,0,2,248738,29,S\n80,Dowdell,1,3,female,30,0,0,364516,12.475,S\n81,Waelens,0,3,male,22,0,0,345767,9,S\n82,Sheerlinck,1,3,male,29,0,0,345779,9.5,S\n83,McDermott,1,3,female,29.69911765,0,0,330932,7.7875,Q\n84,Carrau,0,1,male,28,0,0,113059,47.1,S\n85,Ilett,1,2,female,17,0,0,SO/C 14885,10.5,S\n86,Backstrom,1,3,female,33,3,0,3101278,15.85,S\n87,Ford,0,3,male,16,1,3,W./C. 6608,34.375,S\n88,Slocovski,0,3,male,29.69911765,0,0,SOTON/OQ 392086,8.05,S\n89,Fortune,1,1,female,23,3,2,19950,263,S\n90,Celotti,0,3,male,24,0,0,343275,8.05,S\n91,Christmann,0,3,male,29,0,0,343276,8.05,S\n92,Andreasson,0,3,male,20,0,0,347466,7.8542,S\n93,Chaffee,0,1,male,46,1,0,W.E.P. 5734,61.175,S\n94,Dean,0,3,male,26,1,2,C.A. 2315,20.575,S\n95,Coxon,0,3,male,59,0,0,364500,7.25,S\n96,Shorney,0,3,male,29.69911765,0,0,374910,8.05,S\n97,Goldschmidt,0,1,male,71,0,0,PC 17754,34.6542,C\n98,Greenfield,1,1,male,23,0,1,PC 17759,63.3583,C\n99,Doling,1,2,female,34,0,1,231919,23,S\n100,Kantor,0,2,male,34,1,0,244367,26,S\n"
  },
  {
    "path": "Install/object/nginx-dashboard.json",
    "content": "[\n  {\n    \"_id\": \"bd2418e0-6f26-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"dashboard\",\n    \"_source\": {\n      \"title\": \"nginx\",\n      \"hits\": 0,\n      \"description\": \"\",\n      \"panelsJSON\": \"[{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 350\\\":\\\"rgb(247,252,245)\\\",\\\"1,050 - 1,400\\\":\\\"rgb(35,139,69)\\\",\\\"350 - 700\\\":\\\"rgb(199,233,192)\\\",\\\"700 - 1,050\\\":\\\"rgb(116,196,118)\\\"},\\\"legendOpen\\\":false}},\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"1\\\",\\\"w\\\":6,\\\"x\\\":0,\\\"y\\\":7},\\\"id\\\":\\\"fe7b9a30-6f20-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"1\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"2\\\",\\\"w\\\":4,\\\"x\\\":6,\\\"y\\\":7},\\\"id\\\":\\\"25a7f140-6f20-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"2\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"3\\\",\\\"w\\\":2,\\\"x\\\":10,\\\"y\\\":7},\\\"id\\\":\\\"cfbbc570-6f26-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"3\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"embeddableConfig\\\":{\\\"mapCenter\\\":[15.284185114076445,12.128906250000002],\\\"mapZoom\\\":2},\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"4\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":10},\\\"id\\\":\\\"7a9123a0-6f27-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"4\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"5\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":3},\\\"id\\\":\\\"08e28cc0-6f28-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"5\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"6\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":0},\\\"id\\\":\\\"57d11570-6f2a-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"6\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"7\\\",\\\"w\\\":6,\\\"x\\\":0,\\\"y\\\":14},\\\"id\\\":\\\"98a8d0b0-6f2a-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"7\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"8\\\",\\\"w\\\":6,\\\"x\\\":6,\\\"y\\\":14},\\\"id\\\":\\\"4b2430e0-6f2b-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"8\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"colors\\\":{\\\"200\\\":\\\"#6ED0E0\\\",\\\"NOT 200\\\":\\\"#F29191\\\",\\\"nginx.access.response_code:200\\\":\\\"#F29191\\\"},\\\"legendOpen\\\":true}},\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"9\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":20},\\\"id\\\":\\\"c1d84360-6f2c-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"9\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"10\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":23},\\\"id\\\":\\\"7b3cdde0-6f30-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"10\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"12\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":17},\\\"id\\\":\\\"de77bd70-6f31-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"12\\\",\\\"sort\\\":[\\\"nginx.access.body_sent.bytes\\\",\\\"desc\\\"],\\\"type\\\":\\\"search\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"13\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":26},\\\"id\\\":\\\"b23c8a00-6f32-11e8-a0fb-51f0eb991705\\\",\\\"panelIndex\\\":\\\"13\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"}]\",\n      \"optionsJSON\": \"{\\\"darkTheme\\\":false,\\\"hidePanelTitles\\\":false,\\\"useMargins\\\":true}\",\n      \"version\": 1,\n      \"timeRestore\": false,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"},\\\"filter\\\":[],\\\"highlightAll\\\":true,\\\"version\\\":true}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Install/object/nginx-visualizations.json",
    "content": "[\n  {\n    \"_id\": \"7a9123a0-6f27-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] coordinate maps\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] coordinate maps\\\",\\\"type\\\":\\\"tile_map\\\",\\\"params\\\":{\\\"mapType\\\":\\\"Scaled Circle Markers\\\",\\\"isDesaturated\\\":true,\\\"addTooltip\\\":true,\\\"heatClusterSize\\\":1,\\\"legendPosition\\\":\\\"bottomright\\\",\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"wms\\\":{\\\"enabled\\\":false,\\\"options\\\":{\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true},\\\"baseLayersAreLoaded\\\":{},\\\"tmsLayers\\\":[{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}],\\\"selectedTmsLayer\\\":{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"geohash_grid\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.geoip.location\\\",\\\"autoPrecision\\\":true,\\\"isFilteredByCollar\\\":true,\\\"useGeocentroid\\\":true,\\\"precision\\\":2}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"08e28cc0-6f28-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] region maps\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] region maps\\\",\\\"type\\\":\\\"region_map\\\",\\\"params\\\":{\\\"legendPosition\\\":\\\"bottomright\\\",\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"selectedLayer\\\":{\\\"attribution\\\":\\\"<p><a href=\\\\\\\"http://www.naturalearthdata.com/about/terms-of-use\\\\\\\">Made with NaturalEarth</a> | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"name\\\":\\\"World Countries\\\",\\\"weight\\\":1,\\\"format\\\":{\\\"type\\\":\\\"geojson\\\"},\\\"url\\\":\\\"https://vector.maps.elastic.co/blob/5659313586569216?elastic_tile_service_tos=agree&my_app_version=6.2.4\\\",\\\"fields\\\":[{\\\"name\\\":\\\"iso2\\\",\\\"description\\\":\\\"Two letter abbreviation\\\"},{\\\"name\\\":\\\"name\\\",\\\"description\\\":\\\"Country name\\\"},{\\\"name\\\":\\\"iso3\\\",\\\"description\\\":\\\"Three letter abbreviation\\\"}],\\\"created_at\\\":\\\"2017-04-26T17:12:15.978370\\\",\\\"tags\\\":[],\\\"id\\\":5659313586569216,\\\"layerId\\\":\\\"elastic_maps_service.World Countries\\\"},\\\"selectedJoinField\\\":{\\\"name\\\":\\\"iso2\\\",\\\"description\\\":\\\"Two letter abbreviation\\\"},\\\"isDisplayWarning\\\":true,\\\"wms\\\":{\\\"enabled\\\":false,\\\"options\\\":{\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true},\\\"baseLayersAreLoaded\\\":{},\\\"tmsLayers\\\":[{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}],\\\"selectedTmsLayer\\\":{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}},\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"outlineWeight\\\":2,\\\"showAllShapes\\\":true},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.geoip.country_code2\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":100,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"mapZoom\\\":2,\\\"mapCenter\\\":[11.695272733029402,24.433593750000004]}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"cfbbc570-6f26-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] metric\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] metric\\\",\\\"type\\\":\\\"metric\\\",\\\"params\\\":{\\\"addTooltip\\\":true,\\\"addLegend\\\":false,\\\"type\\\":\\\"metric\\\",\\\"metric\\\":{\\\"percentageMode\\\":false,\\\"useRanges\\\":false,\\\"colorSchema\\\":\\\"Green to Red\\\",\\\"metricColorMode\\\":\\\"None\\\",\\\"colorsRange\\\":[{\\\"from\\\":0,\\\"to\\\":10000}],\\\"labels\\\":{\\\"show\\\":true},\\\"invertColors\\\":false,\\\"style\\\":{\\\"bgFill\\\":\\\"#000\\\",\\\"bgColor\\\":false,\\\"labelColor\\\":false,\\\"subText\\\":\\\"\\\",\\\"fontSize\\\":31}}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"req\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"c1d84360-6f2c-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] area chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] area chart\\\",\\\"type\\\":\\\"line\\\",\\\"params\\\":{\\\"type\\\":\\\"line\\\",\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"truncate\\\":100},\\\"title\\\":{}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"req 개수\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":\\\"true\\\",\\\"type\\\":\\\"area\\\",\\\"mode\\\":\\\"stacked\\\",\\\"data\\\":{\\\"label\\\":\\\"req 개수\\\",\\\"id\\\":\\\"1\\\"},\\\"valueAxis\\\":\\\"ValueAxis-1\\\",\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"req 개수\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"@timestamp\\\",\\\"interval\\\":\\\"h\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"날짜\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"filters\\\",\\\"schema\\\":\\\"group\\\",\\\"params\\\":{\\\"filters\\\":[{\\\"input\\\":{\\\"query\\\":\\\"nginx.access.response_code:200\\\"},\\\"label\\\":\\\"200\\\"},{\\\"input\\\":{\\\"query\\\":\\\"NOT nginx.access.response_code:200\\\"},\\\"label\\\":\\\"NOT 200\\\"}]}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"colors\\\":{\\\"200\\\":\\\"#6ED0E0\\\",\\\"nginx.access.response_code:200\\\":\\\"#F29191\\\"},\\\"legendOpen\\\":false}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"98a8d0b0-6f2a-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] pie chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] pie chart\\\",\\\"type\\\":\\\"pie\\\",\\\"params\\\":{\\\"type\\\":\\\"pie\\\",\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"isDonut\\\":true,\\\"labels\\\":{\\\"show\\\":false,\\\"values\\\":true,\\\"last_level\\\":true,\\\"truncate\\\":100}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.method\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":100,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"4b2430e0-6f2b-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] horizontal bar\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] horizontal bar\\\",\\\"type\\\":\\\"horizontal_bar\\\",\\\"params\\\":{\\\"type\\\":\\\"histogram\\\",\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":200},\\\"title\\\":{}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":75,\\\"filter\\\":true,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"평균 전송량 (byte)\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"mode\\\":\\\"normal\\\",\\\"data\\\":{\\\"label\\\":\\\"평균 전송량 (byte)\\\",\\\"id\\\":\\\"1\\\"},\\\"valueAxis\\\":\\\"ValueAxis-1\\\",\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"avg\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.body_sent.bytes\\\",\\\"customLabel\\\":\\\"평균 전송량 (byte)\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.user_agent.name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":10,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"agent\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"fe7b9a30-6f20-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] heat map\",\n      \"visState\": \"{\\\"aggs\\\":[{\\\"enabled\\\":true,\\\"id\\\":\\\"1\\\",\\\"params\\\":{},\\\"schema\\\":\\\"metric\\\",\\\"type\\\":\\\"count\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"2\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"요일\\\",\\\"field\\\":\\\"요일_한글\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"order\\\":\\\"asc\\\",\\\"orderAgg\\\":{\\\"enabled\\\":true,\\\"id\\\":\\\"2-orderAgg\\\",\\\"params\\\":{\\\"field\\\":\\\"요일_숫자\\\"},\\\"schema\\\":{\\\"aggFilter\\\":[\\\"!top_hits\\\",\\\"!percentiles\\\",\\\"!median\\\",\\\"!std_dev\\\",\\\"!derivative\\\",\\\"!moving_avg\\\",\\\"!serial_diff\\\",\\\"!cumulative_sum\\\",\\\"!avg_bucket\\\",\\\"!max_bucket\\\",\\\"!min_bucket\\\",\\\"!sum_bucket\\\"],\\\"deprecate\\\":false,\\\"editor\\\":false,\\\"group\\\":\\\"none\\\",\\\"hideCustomLabel\\\":true,\\\"max\\\":null,\\\"min\\\":0,\\\"name\\\":\\\"orderAgg\\\",\\\"params\\\":[],\\\"title\\\":\\\"Order Agg\\\"},\\\"type\\\":\\\"avg\\\"},\\\"orderBy\\\":\\\"custom\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"size\\\":7},\\\"schema\\\":\\\"segment\\\",\\\"type\\\":\\\"terms\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"3\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"시간대\\\",\\\"field\\\":\\\"시간대\\\",\\\"ranges\\\":[{\\\"from\\\":18,\\\"to\\\":23},{\\\"from\\\":14,\\\"to\\\":18},{\\\"from\\\":10,\\\"to\\\":14},{\\\"from\\\":5,\\\"to\\\":10},{\\\"from\\\":0,\\\"to\\\":5}]},\\\"schema\\\":\\\"group\\\",\\\"type\\\":\\\"range\\\"}],\\\"params\\\":{\\\"addLegend\\\":true,\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"colorsNumber\\\":6,\\\"colorsRange\\\":[],\\\"enableHover\\\":false,\\\"invertColors\\\":false,\\\"legendPosition\\\":\\\"right\\\",\\\"percentageMode\\\":false,\\\"setColorRange\\\":false,\\\"times\\\":[],\\\"type\\\":\\\"heatmap\\\",\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"labels\\\":{\\\"color\\\":\\\"#555\\\",\\\"rotate\\\":0,\\\"show\\\":false},\\\"scale\\\":{\\\"defaultYExtents\\\":false,\\\"type\\\":\\\"linear\\\"},\\\"show\\\":false,\\\"type\\\":\\\"value\\\"}]},\\\"title\\\":\\\"[nginx] heat map\\\",\\\"type\\\":\\\"heatmap\\\"}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 584\\\":\\\"rgb(255,255,204)\\\",\\\"584 - 1,167\\\":\\\"rgb(255,230,146)\\\",\\\"1,167 - 1,750\\\":\\\"rgb(254,191,90)\\\",\\\"1,750 - 2,334\\\":\\\"rgb(253,141,60)\\\",\\\"2,334 - 2,917\\\":\\\"rgb(244,61,37)\\\",\\\"2,917 - 3,500\\\":\\\"rgb(202,8,35)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"1fe62120-6f37-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] Goal\",\n      \"visState\": \"{\\\"aggs\\\":[{\\\"enabled\\\":true,\\\"id\\\":\\\"1\\\",\\\"params\\\":{\\\"customBucket\\\":{\\\"enabled\\\":true,\\\"id\\\":\\\"1-bucket\\\",\\\"params\\\":{\\\"customInterval\\\":\\\"2h\\\",\\\"extended_bounds\\\":{},\\\"field\\\":\\\"@timestamp\\\",\\\"interval\\\":\\\"d\\\",\\\"min_doc_count\\\":1},\\\"schema\\\":{\\\"aggFilter\\\":[],\\\"deprecate\\\":false,\\\"editor\\\":false,\\\"group\\\":\\\"none\\\",\\\"max\\\":null,\\\"min\\\":0,\\\"name\\\":\\\"bucketAgg\\\",\\\"params\\\":[],\\\"title\\\":\\\"Bucket Agg\\\"},\\\"type\\\":\\\"date_histogram\\\"},\\\"customMetric\\\":{\\\"enabled\\\":true,\\\"id\\\":\\\"1-metric\\\",\\\"params\\\":{},\\\"schema\\\":{\\\"aggFilter\\\":[\\\"!top_hits\\\",\\\"!percentiles\\\",\\\"!percentile_ranks\\\",\\\"!median\\\",\\\"!std_dev\\\",\\\"!sum_bucket\\\",\\\"!avg_bucket\\\",\\\"!min_bucket\\\",\\\"!max_bucket\\\",\\\"!derivative\\\",\\\"!moving_avg\\\",\\\"!serial_diff\\\",\\\"!cumulative_sum\\\"],\\\"deprecate\\\":false,\\\"editor\\\":false,\\\"group\\\":\\\"none\\\",\\\"max\\\":null,\\\"min\\\":0,\\\"name\\\":\\\"metricAgg\\\",\\\"params\\\":[],\\\"title\\\":\\\"Metric Agg\\\"},\\\"type\\\":\\\"count\\\"}},\\\"schema\\\":\\\"metric\\\",\\\"type\\\":\\\"max_bucket\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"2\\\",\\\"params\\\":{\\\"filters\\\":[{\\\"input\\\":{\\\"query\\\":\\\"nginx.access.geoip.country_name: \\\\\\\"United States\\\\\\\"\\\"},\\\"label\\\":\\\"\\\"}]},\\\"schema\\\":\\\"group\\\",\\\"type\\\":\\\"filters\\\"}],\\\"params\\\":{\\\"addLegend\\\":false,\\\"addTooltip\\\":true,\\\"gauge\\\":{\\\"autoExtend\\\":false,\\\"backStyle\\\":\\\"Full\\\",\\\"colorSchema\\\":\\\"Green to Red\\\",\\\"colorsRange\\\":[{\\\"from\\\":0,\\\"to\\\":200}],\\\"extendRange\\\":true,\\\"gaugeColorMode\\\":\\\"None\\\",\\\"gaugeStyle\\\":\\\"Full\\\",\\\"gaugeType\\\":\\\"Arc\\\",\\\"invertColors\\\":false,\\\"labels\\\":{\\\"color\\\":\\\"black\\\",\\\"show\\\":true},\\\"orientation\\\":\\\"vertical\\\",\\\"percentageMode\\\":true,\\\"scale\\\":{\\\"color\\\":\\\"#333\\\",\\\"labels\\\":false,\\\"show\\\":false,\\\"width\\\":2},\\\"style\\\":{\\\"bgColor\\\":false,\\\"bgFill\\\":\\\"#000\\\",\\\"fontSize\\\":60,\\\"labelColor\\\":false,\\\"subText\\\":\\\"\\\"},\\\"type\\\":\\\"meter\\\",\\\"useRanges\\\":false,\\\"verticalSplit\\\":false},\\\"isDisplayWarning\\\":false,\\\"type\\\":\\\"gauge\\\"},\\\"title\\\":\\\"[nginx] Goal\\\",\\\"type\\\":\\\"goal\\\"}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 100\\\":\\\"rgb(0,104,55)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"57d11570-6f2a-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] markdown\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] markdown\\\",\\\"type\\\":\\\"markdown\\\",\\\"params\\\":{\\\"fontSize\\\":10,\\\"markdown\\\":\\\"### Nginx Access.Log Dashboard\\\\n---\\\\n```\\\\n66.249.82.131 - - [13/Jun/2018:17:01:02 +0000] \\\\\\\"GET /ui/favicons/favicon-16x16.png HTTP/1.1\\\\\\\" 304 0 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"118.221.38.242\\\\\\\"\\\\n118.221.38.242 - - [13/Jun/2018:17:01:14 +0000] \\\\\\\"POST /api/console/proxy?path=_aliases&method=GET HTTP/1.1\\\\\\\" 200 107 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"-\\\\\\\"\\\\n118.221.38.242 - - [13/Jun/2018:17:01:14 +0000] \\\\\\\"POST /api/console/proxy?path=_mapping&method=GET HTTP/1.1\\\\\\\" 200 974 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"-\\\\\\\"\\\\n66.249.82.131 - - [13/Jun/2018:17:01:16 +0000] \\\\\\\"GET /ui/favicons/favicon-32x32.png HTTP/1.1\\\\\\\" 304 0 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"118.221.38.242\\\\\\\"\\\\n66.249.82.129 - - [13/Jun/2018:17:01:17 +0000] \\\\\\\"GET /ui/favicons/favicon-16x16.png HTTP/1.1\\\\\\\" 304 0 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"118.221.38.242\\\\\\\"\\\\n```\\\"},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"7b3cdde0-6f30-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] Timelion\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] Timelion\\\",\\\"type\\\":\\\"timelion\\\",\\\"params\\\":{\\\"expression\\\":\\\".es(index=nginx*, timefield=@timestamp, metric=count).label(전체).lines(), .es(index=nginx*, timefield=@timestamp, q= -nginx.access.response_code:200, metric=count).divide(.es(index=nginx*, timefield=@timestamp, metric=count)).if(gte, 0.5, .es(index=nginx*, timefield=@timestamp, metric=count, q=-nginx.access.response_code:200), null).points().color(#fd8282).label('에러 50% 이상').legend(position=ne)\\\",\\\"interval\\\":\\\"auto\\\"},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"25a7f140-6f20-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] tag-cloud\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] tag-cloud\\\",\\\"type\\\":\\\"tagcloud\\\",\\\"params\\\":{\\\"scale\\\":\\\"linear\\\",\\\"orientation\\\":\\\"single\\\",\\\"minFontSize\\\":18,\\\"maxFontSize\\\":35},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.user_agent.os_name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"2bd12750-a362-11e8-8d82-2973ec7f077b\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] heat map2\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] heat map2\\\",\\\"type\\\":\\\"heatmap\\\",\\\"params\\\":{\\\"addLegend\\\":true,\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"colorsNumber\\\":6,\\\"colorsRange\\\":[],\\\"enableHover\\\":false,\\\"invertColors\\\":false,\\\"legendPosition\\\":\\\"right\\\",\\\"percentageMode\\\":false,\\\"setColorRange\\\":false,\\\"times\\\":[],\\\"type\\\":\\\"heatmap\\\",\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"labels\\\":{\\\"color\\\":\\\"#555\\\",\\\"rotate\\\":0,\\\"show\\\":false},\\\"scale\\\":{\\\"defaultYExtents\\\":false,\\\"type\\\":\\\"linear\\\"},\\\"show\\\":false,\\\"type\\\":\\\"value\\\"}]},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"cardinality\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.remote_ip\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.geoip.city_name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"orderAgg\\\":{\\\"id\\\":\\\"2-orderAgg\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"avg\\\",\\\"schema\\\":{\\\"group\\\":\\\"none\\\",\\\"name\\\":\\\"orderAgg\\\",\\\"title\\\":\\\"Order Agg\\\",\\\"hideCustomLabel\\\":true,\\\"aggFilter\\\":[\\\"!top_hits\\\",\\\"!percentiles\\\",\\\"!median\\\",\\\"!std_dev\\\",\\\"!derivative\\\",\\\"!moving_avg\\\",\\\"!serial_diff\\\",\\\"!cumulative_sum\\\",\\\"!avg_bucket\\\",\\\"!max_bucket\\\",\\\"!min_bucket\\\",\\\"!sum_bucket\\\"],\\\"min\\\":0,\\\"max\\\":null,\\\"editor\\\":false,\\\"params\\\":[],\\\"deprecate\\\":false},\\\"params\\\":{\\\"field\\\":\\\"nginx.access.body_sent.bytes\\\"}},\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"custom\\\",\\\"customLabel\\\":\\\"요일\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"range\\\",\\\"schema\\\":\\\"group\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.body_sent.bytes\\\",\\\"ranges\\\":[{\\\"from\\\":0,\\\"to\\\":300},{\\\"from\\\":300,\\\"to\\\":600},{\\\"from\\\":600,\\\"to\\\":900},{\\\"from\\\":900,\\\"to\\\":null}],\\\"customLabel\\\":\\\"시간대\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 7\\\":\\\"rgb(255,255,204)\\\",\\\"7 - 14\\\":\\\"rgb(255,230,146)\\\",\\\"14 - 20\\\":\\\"rgb(254,191,90)\\\",\\\"20 - 27\\\":\\\"rgb(253,141,60)\\\",\\\"27 - 34\\\":\\\"rgb(244,61,37)\\\",\\\"34 - 40\\\":\\\"rgb(202,8,35)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"b23c8a00-6f32-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] Data Table\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] Data Table\\\",\\\"type\\\":\\\"table\\\",\\\"params\\\":{\\\"perPage\\\":10,\\\"showMeticsAtAllLevels\\\":false,\\\"showPartialRows\\\":false,\\\"showTotal\\\":false,\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null},\\\"totalFunc\\\":\\\"sum\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"개수\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"@timestamp\\\",\\\"interval\\\":\\\"d\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"날짜\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.geoip.city_name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":2,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"도시\\\"}},{\\\"id\\\":\\\"5\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"avg\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.body_sent.bytes\\\",\\\"customLabel\\\":\\\"평균 데이터 크기\\\"}},{\\\"id\\\":\\\"6\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"range\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.body_sent.bytes\\\",\\\"ranges\\\":[{\\\"from\\\":0,\\\"to\\\":1000},{\\\"from\\\":1000,\\\"to\\\":null}],\\\"customLabel\\\":\\\"데이터 크기\\\"}},{\\\"id\\\":\\\"7\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.user_agent.os\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":2,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"os\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"params\\\":{\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null}}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b8c6bd20-87db-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Install/object/shopping-dashboard.json",
    "content": "[\n  {\n    \"_id\": \"AV-a4D_kMbjMXoGxGOm2\",\n    \"_type\": \"dashboard\",\n    \"_source\": {\n      \"title\": \"shopping\",\n      \"hits\": 0,\n      \"description\": \"\",\n      \"panelsJSON\": \"[{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 7\\\":\\\"rgb(255,255,204)\\\",\\\"14 - 21\\\":\\\"rgb(253,141,60)\\\",\\\"21 - 28\\\":\\\"rgb(227,27,28)\\\",\\\"7 - 14\\\":\\\"rgb(254,217,118)\\\"},\\\"legendOpen\\\":false}},\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"19\\\",\\\"w\\\":6,\\\"x\\\":6,\\\"y\\\":7},\\\"id\\\":\\\"AWJdhp4tzMQVnr-9MxxP\\\",\\\"panelIndex\\\":\\\"19\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"legendOpen\\\":false}},\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"20\\\",\\\"w\\\":6,\\\"x\\\":0,\\\"y\\\":14},\\\"id\\\":\\\"AWJdii5xzMQVnr-9MxxQ\\\",\\\"panelIndex\\\":\\\"20\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"embeddableConfig\\\":{\\\"mapCenter\\\":[36.54494944148322,128.199462890625],\\\"mapZoom\\\":6},\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"21\\\",\\\"w\\\":6,\\\"x\\\":6,\\\"y\\\":3},\\\"id\\\":\\\"AWJgEGqCzMQVnr-9MxxW\\\",\\\"panelIndex\\\":\\\"21\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"22\\\",\\\"w\\\":9,\\\"x\\\":0,\\\"y\\\":0},\\\"id\\\":\\\"AWJglBU6zMQVnr-9Mxxa\\\",\\\"panelIndex\\\":\\\"22\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"24\\\",\\\"w\\\":6,\\\"x\\\":0,\\\"y\\\":3},\\\"id\\\":\\\"AWJgsNh9zMQVnr-9Mxxe\\\",\\\"panelIndex\\\":\\\"24\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 100\\\":\\\"rgb(0,104,55)\\\"}}},\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"25\\\",\\\"w\\\":3,\\\"x\\\":9,\\\"y\\\":0},\\\"id\\\":\\\"AWJguWqpzMQVnr-9Mxxg\\\",\\\"panelIndex\\\":\\\"25\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"26\\\",\\\"w\\\":6,\\\"x\\\":0,\\\"y\\\":7},\\\"id\\\":\\\"AWJgycpEzMQVnr-9Mxxi\\\",\\\"panelIndex\\\":\\\"26\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"legendOpen\\\":false}},\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"27\\\",\\\"w\\\":6,\\\"x\\\":0,\\\"y\\\":11},\\\"id\\\":\\\"AWJg0q4CzMQVnr-9Mxxk\\\",\\\"panelIndex\\\":\\\"27\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"28\\\",\\\"w\\\":6,\\\"x\\\":6,\\\"y\\\":11},\\\"id\\\":\\\"AWJg1XpWzMQVnr-9Mxxl\\\",\\\"panelIndex\\\":\\\"28\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"params\\\":{\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null}}}},\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"29\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":18},\\\"id\\\":\\\"AWJg1wbTzMQVnr-9Mxxm\\\",\\\"panelIndex\\\":\\\"29\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 1\\\":\\\"rgb(165,0,38)\\\",\\\"1 - 2\\\":\\\"rgb(249,142,82)\\\",\\\"2 - 3\\\":\\\"rgb(255,255,190)\\\",\\\"3 - 4\\\":\\\"rgb(135,203,103)\\\",\\\"4 - 5\\\":\\\"rgb(0,104,55)\\\"}}},\\\"gridData\\\":{\\\"h\\\":4,\\\"i\\\":\\\"30\\\",\\\"w\\\":6,\\\"x\\\":6,\\\"y\\\":14},\\\"id\\\":\\\"AWJg3QUCzMQVnr-9Mxxo\\\",\\\"panelIndex\\\":\\\"30\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"31\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":22},\\\"id\\\":\\\"AWGI8fjSPloSIAlpOE6c\\\",\\\"panelIndex\\\":\\\"31\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"}]\",\n      \"optionsJSON\": \"{\\\"darkTheme\\\":false,\\\"useMargins\\\":false}\",\n      \"version\": 1,\n      \"timeRestore\": false,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"filter\\\":[],\\\"highlightAll\\\":true,\\\"version\\\":true,\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":{\\\"match_all\\\":{}}}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Install/object/shopping-visualizations.json",
    "content": "[\n  {\n    \"_id\": \"AV_Fp61Dju5h0m3erKmP\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"shopping_timelion_2\",\n      \"visState\": \"{\\\"title\\\":\\\"shopping_timelion_2\\\",\\\"type\\\":\\\"timelion\\\",\\\"params\\\":{\\\"expression\\\":\\\".es(index=shopping, timefield=주문시간, metric=sum:상품가격).label('올해 매출').range(0, 1),  .es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y).label('작년 매출').color(#00b8ff).range(0, 1),  .es(index=shopping, timefield=주문시간, metric=sum:상품가격).subtract(.es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y)).if(gte, 50000, .es(index=shopping, timefield=주문시간, metric=sum:상품가격), null).lines(fill=5, width=2).color(#fd8282).label('전년 대비 50,000 이상 상승 구간').yaxis(label=매출).range(0, 1)\\\",\\\"interval\\\":\\\"1d\\\",\\\"type\\\":\\\"timelion\\\"},\\\"aggs\\\":[],\\\"listeners\\\":{}}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJglBU6zMQVnr-9Mxxa\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] markdown\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] markdown\\\",\\\"type\\\":\\\"markdown\\\",\\\"params\\\":{\\\"type\\\":\\\"markdown\\\",\\\"markdown\\\":\\\"### Elastic Stack을 활용한 Data Dashboard 만들기 CAMP\\\\n---\\\\n* [강의자료](https://github.com/higee/elastic)\\\\n* [강의질문](https://www.facebook.com/groups/FCElasticStack/)\\\\n* [Markdown문법](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)\\\",\\\"fontSize\\\":12},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWGI8fjSPloSIAlpOE6c\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Timelion\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Timelion\\\",\\\"type\\\":\\\"timelion\\\",\\\"params\\\":{\\\"expression\\\":\\\".es(index=shopping, timefield=주문시간, metric=sum:상품가격).label('올해 매출'),  .es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y).label('작년 매출').color(#00b8ff),  .es(index=shopping, timefield=주문시간, metric=sum:상품가격).subtract(.es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y)).if(gte, 50000, .es(index=shopping, timefield=주문시간, metric=sum:상품가격), null).lines(fill=5, width=2).color(#fd8282).label('전년 대비 50,000 이상 상승 구간').yaxis(label=매출).legend(position=ne)\\\",\\\"interval\\\":\\\"1d\\\",\\\"type\\\":\\\"timelion\\\"},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJg1wbTzMQVnr-9Mxxm\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Data Table\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Data Table\\\",\\\"type\\\":\\\"table\\\",\\\"params\\\":{\\\"perPage\\\":30,\\\"showPartialRows\\\":false,\\\"showMeticsAtAllLevels\\\":false,\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null},\\\"showTotal\\\":false,\\\"totalFunc\\\":\\\"sum\\\",\\\"type\\\":\\\"table\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"sum\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"상품가격\\\",\\\"customLabel\\\":\\\"매출\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"주문시간\\\",\\\"interval\\\":\\\"d\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"날짜\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"구매사이트\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"사이트\\\"}},{\\\"id\\\":\\\"4\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"결제카드\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"카드\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"params\\\":{\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null}}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJgsNh9zMQVnr-9Mxxe\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Tag Cloud\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Tag Cloud\\\",\\\"type\\\":\\\"tagcloud\\\",\\\"params\\\":{\\\"scale\\\":\\\"linear\\\",\\\"orientation\\\":\\\"single\\\",\\\"minFontSize\\\":18,\\\"maxFontSize\\\":72,\\\"type\\\":\\\"tagcloud\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"구매사이트\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":10,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJg3QUCzMQVnr-9Mxxo\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Goal\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Goal\\\",\\\"type\\\":\\\"goal\\\",\\\"params\\\":{\\\"addTooltip\\\":true,\\\"addLegend\\\":false,\\\"type\\\":\\\"gauge\\\",\\\"gauge\\\":{\\\"verticalSplit\\\":false,\\\"autoExtend\\\":false,\\\"percentageMode\\\":false,\\\"gaugeType\\\":\\\"Arc\\\",\\\"gaugeStyle\\\":\\\"Full\\\",\\\"backStyle\\\":\\\"Full\\\",\\\"orientation\\\":\\\"vertical\\\",\\\"useRanges\\\":false,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"gaugeColorMode\\\":\\\"None\\\",\\\"colorsRange\\\":[{\\\"from\\\":0,\\\"to\\\":1},{\\\"from\\\":1,\\\"to\\\":2},{\\\"from\\\":2,\\\"to\\\":3},{\\\"from\\\":3,\\\"to\\\":4},{\\\"from\\\":4,\\\"to\\\":5}],\\\"invertColors\\\":true,\\\"labels\\\":{\\\"show\\\":true,\\\"color\\\":\\\"black\\\"},\\\"scale\\\":{\\\"show\\\":false,\\\"labels\\\":false,\\\"color\\\":\\\"#333\\\",\\\"width\\\":2},\\\"type\\\":\\\"meter\\\",\\\"style\\\":{\\\"bgFill\\\":\\\"#000\\\",\\\"bgColor\\\":false,\\\"labelColor\\\":false,\\\"subText\\\":\\\"\\\",\\\"fontSize\\\":60}},\\\"isDisplayWarning\\\":false},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"top_hits\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"판매자평점\\\",\\\"aggregate\\\":\\\"average\\\",\\\"size\\\":10,\\\"sortField\\\":\\\"상품가격\\\",\\\"sortOrder\\\":\\\"desc\\\",\\\"customLabel\\\":\\\"연령별 VIP 평점\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"group\\\",\\\"params\\\":{\\\"field\\\":\\\"연령대\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":3,\\\"order\\\":\\\"asc\\\",\\\"orderBy\\\":\\\"_term\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 1\\\":\\\"rgb(128,0,38)\\\",\\\"1 - 2\\\":\\\"rgb(227,27,28)\\\",\\\"2 - 3\\\":\\\"rgb(253,141,60)\\\",\\\"3 - 4\\\":\\\"rgb(254,217,118)\\\",\\\"4 - 5\\\":\\\"rgb(255,255,204)\\\"}},\\\"spy\\\":{\\\"mode\\\":{\\\"name\\\":null,\\\"fill\\\":false}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJgycpEzMQVnr-9Mxxi\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Pie Chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Pie Chart\\\",\\\"type\\\":\\\"pie\\\",\\\"params\\\":{\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"isDonut\\\":false,\\\"type\\\":\\\"pie\\\",\\\"labels\\\":{\\\"show\\\":false,\\\"values\\\":true,\\\"last_level\\\":true,\\\"truncate\\\":100}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"top_hits\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"판매자평점\\\",\\\"aggregate\\\":\\\"average\\\",\\\"size\\\":5,\\\"sortField\\\":\\\"판매자평점\\\",\\\"sortOrder\\\":\\\"desc\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"schema\\\":\\\"split\\\",\\\"params\\\":{\\\"field\\\":\\\"배송소요시간\\\",\\\"interval\\\":24,\\\"extended_bounds\\\":{},\\\"row\\\":false}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"고객주소_시도\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":3,\\\"orderAgg\\\":{\\\"id\\\":\\\"2-orderAgg\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"avg\\\",\\\"schema\\\":\\\"orderAgg\\\",\\\"params\\\":{\\\"field\\\":\\\"배송소요시간\\\"}},\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"custom\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"colors\\\":{\\\"인천광역시\\\":\\\"#962D82\\\"},\\\"legendOpen\\\":false}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJgEGqCzMQVnr-9MxxW\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Region Map\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Region Map\\\",\\\"type\\\":\\\"region_map\\\",\\\"params\\\":{\\\"legendPosition\\\":\\\"bottomright\\\",\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"selectedLayer\\\":{\\\"name\\\":\\\"Korea City\\\",\\\"url\\\":\\\"https://s3.ap-northeast-2.amazonaws.com/higee-map/korea.geojson\\\",\\\"fields\\\":[{\\\"name\\\":\\\"name\\\",\\\"description\\\":\\\"City name\\\"}],\\\"format\\\":{\\\"type\\\":\\\"geojson\\\"},\\\"meta\\\":{\\\"feature_collection_path\\\":\\\"data\\\"},\\\"layerId\\\":\\\"self_hosted.Korea City\\\"},\\\"selectedJoinField\\\":{\\\"name\\\":\\\"name\\\",\\\"description\\\":\\\"City name\\\"},\\\"type\\\":\\\"region_map\\\",\\\"isDisplayWarning\\\":true,\\\"wms\\\":{\\\"enabled\\\":false,\\\"options\\\":{\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true},\\\"baseLayersAreLoaded\\\":{},\\\"tmsLayers\\\":[{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}],\\\"selectedTmsLayer\\\":{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}},\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"outlineWeight\\\":1,\\\"showAllShapes\\\":true},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"고객주소_시도\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":20,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"mapZoom\\\":7,\\\"mapCenter\\\":[36.071302299422406,128.21594238281253],\\\"spy\\\":null}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJgoeObzMQVnr-9Mxxc\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"shopping_coordinates\",\n      \"visState\": \"{\\\"title\\\":\\\"shopping_coordinates\\\",\\\"type\\\":\\\"tile_map\\\",\\\"params\\\":{\\\"mapType\\\":\\\"Scaled Circle Markers\\\",\\\"isDesaturated\\\":true,\\\"addTooltip\\\":true,\\\"heatMaxZoom\\\":0,\\\"heatMinOpacity\\\":0.1,\\\"heatRadius\\\":25,\\\"heatBlur\\\":15,\\\"legendPosition\\\":\\\"bottomright\\\",\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"wms\\\":{\\\"enabled\\\":false,\\\"url\\\":\\\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\\\",\\\"options\\\":{\\\"version\\\":\\\"1.3.0\\\",\\\"layers\\\":\\\"0\\\",\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true,\\\"attribution\\\":\\\"Maps provided by USGS\\\",\\\"styles\\\":\\\"\\\"}},\\\"type\\\":\\\"tile_map\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"geohash_grid\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"물건좌표\\\",\\\"autoPrecision\\\":true,\\\"useGeocentroid\\\":true,\\\"precision\\\":2}}],\\\"listeners\\\":{}}\",\n      \"uiStateJSON\": \"{\\\"mapZoom\\\":9,\\\"mapCenter\\\":[36.52619126653696,127.91244506835936]}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJguWqpzMQVnr-9Mxxg\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] metrics\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] metrics\\\",\\\"type\\\":\\\"metric\\\",\\\"params\\\":{\\\"addTooltip\\\":true,\\\"addLegend\\\":false,\\\"type\\\":\\\"metric\\\",\\\"metric\\\":{\\\"percentageMode\\\":false,\\\"colorSchema\\\":\\\"Green to Red\\\",\\\"useRange\\\":false,\\\"colorsRange\\\":[{\\\"from\\\":0,\\\"to\\\":100}],\\\"invertColors\\\":false,\\\"labels\\\":{\\\"show\\\":true,\\\"color\\\":\\\"black\\\"},\\\"style\\\":{\\\"fontSize\\\":60,\\\"bgColor\\\":false,\\\"labelColor\\\":false,\\\"subText\\\":\\\"\\\"},\\\"metricColorMode\\\":\\\"None\\\"}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"전체 데이터\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 100\\\":\\\"rgb(0,104,55)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJdii5xzMQVnr-9MxxQ\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Area Chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Area Chart\\\",\\\"type\\\":\\\"area\\\",\\\"params\\\":{\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"주문시간\\\"}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"주문개수\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":\\\"true\\\",\\\"type\\\":\\\"area\\\",\\\"mode\\\":\\\"stacked\\\",\\\"data\\\":{\\\"label\\\":\\\"주문개수\\\",\\\"id\\\":\\\"1\\\"},\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true,\\\"interpolate\\\":\\\"linear\\\",\\\"valueAxis\\\":\\\"ValueAxis-1\\\"}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false,\\\"type\\\":\\\"area\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"sum\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"상품개수\\\",\\\"customLabel\\\":\\\"주문개수\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"주문시간\\\",\\\"interval\\\":\\\"auto\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"주문시간\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"group\\\",\\\"params\\\":{\\\"field\\\":\\\"고객성별\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJg1XpWzMQVnr-9Mxxl\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Horizontal Bar\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Horizontal Bar\\\",\\\"type\\\":\\\"histogram\\\",\\\"params\\\":{\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":200},\\\"title\\\":{\\\"text\\\":\\\"판매자평점\\\"}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":75,\\\"filter\\\":true,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"매출\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"mode\\\":\\\"normal\\\",\\\"data\\\":{\\\"label\\\":\\\"매출\\\",\\\"id\\\":\\\"1\\\"},\\\"valueAxis\\\":\\\"ValueAxis-1\\\",\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false,\\\"type\\\":\\\"horizontal_bar\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"sum\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"상품가격\\\",\\\"customLabel\\\":\\\"매출\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"판매자평점\\\",\\\"interval\\\":1,\\\"extended_bounds\\\":{}}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"legendOpen\\\":false}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJdhp4tzMQVnr-9MxxP\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Heat Map\",\n      \"visState\": \"{\\\"aggs\\\":[{\\\"enabled\\\":true,\\\"id\\\":\\\"1\\\",\\\"params\\\":{},\\\"schema\\\":\\\"metric\\\",\\\"type\\\":\\\"count\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"2\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"주문요일\\\",\\\"field\\\":\\\"주문시간_요일\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"order\\\":\\\"asc\\\",\\\"orderAgg\\\":{\\\"enabled\\\":true,\\\"id\\\":\\\"2-orderAgg\\\",\\\"params\\\":{\\\"field\\\":\\\"주문시간_요일_sort\\\"},\\\"schema\\\":{\\\"aggFilter\\\":[\\\"!top_hits\\\",\\\"!percentiles\\\",\\\"!median\\\",\\\"!std_dev\\\",\\\"!derivative\\\",\\\"!moving_avg\\\",\\\"!serial_diff\\\",\\\"!cumulative_sum\\\",\\\"!avg_bucket\\\",\\\"!max_bucket\\\",\\\"!min_bucket\\\",\\\"!sum_bucket\\\"],\\\"deprecate\\\":false,\\\"editor\\\":false,\\\"group\\\":\\\"none\\\",\\\"hideCustomLabel\\\":true,\\\"max\\\":null,\\\"min\\\":0,\\\"name\\\":\\\"orderAgg\\\",\\\"params\\\":[],\\\"title\\\":\\\"Order Agg\\\"},\\\"type\\\":\\\"max\\\"},\\\"orderBy\\\":\\\"custom\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"size\\\":7},\\\"schema\\\":\\\"segment\\\",\\\"type\\\":\\\"terms\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"3\\\",\\\"params\\\":{\\\"extended_bounds\\\":{},\\\"field\\\":\\\"주문시간_시간대\\\",\\\"interval\\\":1},\\\"schema\\\":\\\"group\\\",\\\"type\\\":\\\"histogram\\\"}],\\\"params\\\":{\\\"addLegend\\\":true,\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"colorsNumber\\\":4,\\\"colorsRange\\\":[],\\\"enableHover\\\":false,\\\"invertColors\\\":false,\\\"legendPosition\\\":\\\"right\\\",\\\"percentageMode\\\":false,\\\"setColorRange\\\":false,\\\"times\\\":[],\\\"type\\\":\\\"heatmap\\\",\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"labels\\\":{\\\"color\\\":\\\"#555\\\",\\\"rotate\\\":0,\\\"show\\\":false},\\\"scale\\\":{\\\"defaultYExtents\\\":false,\\\"type\\\":\\\"linear\\\"},\\\"show\\\":false,\\\"type\\\":\\\"value\\\"}]},\\\"title\\\":\\\"[shopping] Heat Map\\\",\\\"type\\\":\\\"heatmap\\\"}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 45\\\":\\\"rgb(255,255,204)\\\",\\\"45 - 90\\\":\\\"rgb(254,217,118)\\\",\\\"90 - 135\\\":\\\"rgb(253,141,60)\\\",\\\"135 - 180\\\":\\\"rgb(227,27,28)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJg0q4CzMQVnr-9Mxxk\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Line Chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Line Chart\\\",\\\"type\\\":\\\"line\\\",\\\"params\\\":{\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"주문시간\\\"}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"Standard Deviation of 배송소요시간\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":\\\"true\\\",\\\"type\\\":\\\"line\\\",\\\"mode\\\":\\\"normal\\\",\\\"data\\\":{\\\"label\\\":\\\"Standard Deviation of 배송소요시간\\\",\\\"id\\\":\\\"1\\\"},\\\"valueAxis\\\":\\\"ValueAxis-1\\\",\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":true,\\\"type\\\":\\\"line\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"std_dev\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"배송소요시간\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"주문시간\\\",\\\"interval\\\":\\\"auto\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"주문시간\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"spy\\\":{\\\"mode\\\":{\\\"name\\\":null,\\\"fill\\\":false}},\\\"vis\\\":{\\\"legendOpen\\\":false,\\\"colors\\\":{\\\"Lower Standard Deviation of 배송소요시간\\\":\\\"#B7DBAB\\\",\\\"Upper Standard Deviation of 배송소요시간\\\":\\\"#65C5DB\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"7435c580-9fb8-11e8-9edd-ff0dadde764f\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "README.md",
    "content": "### Elastic Stack을 활용한 Dashboard 만들기\n---\n\n#### 안내\n\n* 이 repository는 지속적으로 업데이트가 진행된다. (`<>Code`, `Issues`, `Wiki`)\n* `branch`는 [Fast Campus](http://www.fastcampus.co.kr/data_camp_dsbd/) 강의 기수에 맞춰져 있다.\n* Elastic Stack Version 별로 자료가 필요하면 [Release](https://github.com/higee/elastic/releases)에서 다운 받으면 된다.\n* repository 요소별 안내\n    * `Code` : Elastic Stack 흐름에 관한 전반적인 설명\n    * `Issues` : 자주 들어온 질문 정리\n    * `Wiki` : Elastic Stack 사용법에 초점을 맞춘 간단 사용 설명서\n\n#### 설치\n\n* AWS EC2에 접속 하는 경우를 제외하고는 Windows 및 Mac OS 공통\n* 아래 내용의 동영상이며 영상 속 코드를 복사할 수도 있다. \n\n[![elastic stack install guide](https://asciinema.org/a/176392.png)](https://asciinema.org/a/176392)\n\n----\n\n#### 0. AWS EC2 설정\n* AMI : `Amazon Linux 2 LTS Candidate 2 AMI (HVM), SSD Volume Type - ami-96b916f8`\n* Security Group\n   \n    | Type        | Protocol           | Port Range  | Source | Description\n    | :------------- |:-------------:| :-----:| :----: | :---|\n    | SSH      | TCP | 22 | Custom 0.0.0.0/0 | ssh\n    | Custom TCP      | TCP | 9200 | Custom 0.0.0.0/0 | elasticsearch REST\n    | Custom TCP      | TCP | 9300 | Custom 0.0.0.0/0 | elasticsearch node communication\n    | Custom TCP      | TCP | 5601 | Custom 0.0.0.0/0 | kibana\n\n<a name='ec2'></a>\n#### 1. AWS EC2 접속\n\n* Mac OS\n    * elastic_camp.pem를 Home directory에 다운 받고 Home으로 이동\n    * 예를 들어 ip 주소가 12.345.678.123인 경우\n    ```\n    $ cd ~\n    $ chmod 400 elastic_camp.pem\n    $ ssh -i \"elastic_camp.pem\" ec2-user@12.345.678.123\n    ```\n* Windows : [클릭](https://github.com/higee/elastic/wiki/AWS-EC2-Instance-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EC%A0%91%EC%86%8D#connect-windows)\n\n#### 2. virtual memory areas 늘리기\n* 설명\n    * Elasticsearch는 mmapfs 디렉토리에 index를 저장한다 (default 설정)\n    * mmap counts에 대한 운영체제의 limit이 default로는 낮게 되어 있어서 높혀주지 않으면 out of memory 발생    \n* 방법\n    * `$ sudo vim /etc/sysctl.conf`\n    * 가장 아래 라인으로 이동 : `shift + g` 입력\n    * 새로운 라인으로 편집 모드 : `o` 입력\n    * 다음과 같이 입력 `vm.max_map_count=262144`\n    * 저장 : `ESC` 누르고 `:wq` 입력 후 `Enter`\n    * 재시작 : `$ sudo reboot`\n\n#### 3. docker 설치\n* 약 1분 후에 [AWS EC2 접속](#ec2)와 같은 방법으로 재접속한다\n* docker 설치 및 현재 유저로도 실행할 수 있도록 설정\n```\n$ sudo yum install docker -y\n$ sudo usermod -aG docker $USER\n$ exit\n```\n* [AWS EC2 접속](#ec2)와 같은 방법으로 재접속\n* docker 구동\n\n```$ sudo service docker start```\n\n#### 4. docker-compse 설치 및 실행 가능하게 설정\n```\n$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose\n$ sudo chmod +x /usr/local/bin/docker-compose\n```\n\n<a name='git'></a>\n#### 5. git 설치 및 repo clone\n* git을 설치하고 본 repository를 clone 받는다\n* elastic stack 설치에 필요한 스크립트 및 자료를 미리 올려두었다\n\n```\n$ sudo yum install git -y\n$ git clone -b class5 https://github.com/higee/elastic.git\n$ cd /home/ec2-user/elastic/Install/config\n```\n\n#### 6. 파일 소유권 변환\n```\n$ sudo chown -R 1000:1000 /home/ec2-user/elastic/\n```\n\n#### 7. elastic stack 실행\n* 다운 받은 docker-compose.yml에 설치 및 실행에 필요한 모든 정보가 들어있다.\n* 수업 후에 환경에 맞게 customize하고 우선은 default 상태로 실행하자\n* foreground에서 실행하고 log를 확인하자\n\n```\n$ docker-compose up \n```\n\n* log를 확인했으면 `ctrl+c`로 중단하고 detached mode로 실행하자\n```\n$ docker-compose up -d\n```\n\n#### 8. logstash 실행\n* logstash container  실행 : `$ docker exec -it logstash bash`\n* permission error 생길 경우 root로 실행 : `$ docker exec -u 0 -it logstash bash`\n* logstash 실행 \n    * 편의상 configuraiton 파일도 모두 volume 형태로 mount 해두었다\n    * 실행하고 싶은 scenario를 [여기](https://github.com/higee/elastic/blob/class5/Week5_Logstash/code/logstash.md)에서 찾아서 실행하자\n    * 예를 들어 아래와 같이 하면 파일 데이터를 수집하는 logstash를 실행한다 \n    ```\n    $ bin/logstash -f code/input/file/file-sincedb-path.conf\n    ```\n\n#### 9. Kibana 접속\n* 예를 들어 ip 주소가 12.345.678.123인 경우 : `http://12.345.678.123:5601`\n* docker-compose에서 port를 변경해주면 `80번` 혹은 `443번` 포트 등을 사용할 수 있다\n\n---\n\n#### 기타\n\n* 내용에 대한 피드백(틀린 내용, 설명의 애매함, version upgrade 등)은 언제든지 편하게 알려주세요.\n* 데이터는 랜덤으로 생성했으니 참고 바랍니다.\n"
  },
  {
    "path": "Week1_Kibana/code/es_conf.py",
    "content": "properties =  {\n  \"properties\": {\n    \"접수번호\" : {\"type\": \"integer\"},\n    \"주문시간\" : {\"type\" : \"date\"},\n    \"수령시간\" : {\"type\" : \"date\"},\n    \"예약여부\" : {\"type\" : \"keyword\"},\n    \"배송메모\" : {\"type\" : \"text\"},\n    \"고객ip\" : {\"type\" : \"ip\"},\n    \"고객성별\" : {\"type\" : \"keyword\"},\n    \"고객나이\" : {\"type\" : \"integer\"},\n    \"물건좌표\" : {\"type\" : \"geo_point\"},\n    \"고객주소_시도\" : {\"type\" : \"keyword\"},\n    \"구매사이트\" : {\"type\" : \"keyword\"},\n    \"판매자평점\" : {\"type\" : \"integer\"},\n    \"상품분류\" : {\"type\" : \"keyword\"},\n    \"상품가격\" : {\"type\" : \"integer\"},\n    \"상품개수\" : {\"type\" : \"integer\"},\n    \"결제카드\" : {\"type\" : \"keyword\"}\n  }\n}\n"
  },
  {
    "path": "Week1_Kibana/code/fake.py",
    "content": "import datetime\nimport socket\nimport random\nimport struct\n\nfrom elasticsearch import Elasticsearch\n\ndef fake_data(es, name, n):\n    x = ['예약', '일반']\n    y = [1, 2, 3, 4, 5]\n    prob = [0.1, 0.9]\n    probs_sex = [0.45, 0.55]\n    probs = [0.3, 0.1, 0.3, 0.2, 0.1]\n    probs_memo = [0.3, 0.1, 0.3, 0.12, 0.1, 0.05, 0.03]\n    probs_month = [0.2, 0.1, 0.05, 0.05, 0.07, 0.03, 0.02, 0.02, 0.16, 0.05, 0.1, 0.15]\n    probs_city = [0.3, 0.08, 0.03, 0.06, 0.07, 0.08, 0.03, 0.09, 0.063, 0.0205, 0.0305, 0.03, 0.05, 0.03, 0.001, 0.03, 0.005]\n\n    for i in range(1, n+1):\n\n        doc = dict()\n\n        # 접수번호\n        order = i\n\n        # 접수시간\n        year = random.choice(range(2017, 2019))\n        month = random.choices(range(1, 13), weights=probs_month, k=1)[0]\n        if month in [1, 3, 5, 7, 8, 10, 12]: \n            day = random.choice(range(1, 32))\n        elif month in [4, 6, 9, 11]:\n            day = random.choice(range(1, 31))\n        elif month == 2:\n            day = random.choice(range(1, 29))\n\n        hour = random.choice(range(0, 24))\n        minute = random.choice(range(0, 60))\n        second = random.choice(range(0, 60))\n\n        try:\n            date = datetime.datetime(year, month, day, hour, minute, second)\n        except ValueError as e:\n            print(month, day, e)          \n\n        delta_days = random.choices(range(0, 5), weights=probs, k=1)[0]\n        delta_hours = random.choice(range(0, 23))\n        delta_minutes = random.choice(range(0, 59))\n\n        delivery_date = date + datetime.timedelta(days=delta_days, hours=delta_hours, minutes=delta_minutes)\n\n        # 예약여부\n        reserve = random.choices(x, weights=prob, k=1)[0]\n\n        # 배송메모\n        memos = ['부재중', '관리실에 맡김', '상품 이상', '주소 오류', '환불 요청', '무인택배함에 보관', '시간 내에 배송 못함']\n        memo = random.choices(memos, weights=probs_memo, k=1)[0]\n\n        # 고객ip\n        ip = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff)))\n\n        # 고객 성별\n        sex = random.choices(['남성','여성'], weights=probs_sex, k=1)[0]\n\n        # 고객 나이\n        age = random.choice(range(17, 65))\n\n        # 물건 좌표\n        x_ = random.choice(range(35, 37)) + random.random()\n        y_ = random.choice(range(126, 129)) + random.random()\n\n        loc = \"{}, {}\".format(x_, y_)\n\n        cities = [\"서울특별시\", \"경상남도\", \"경상북도\", \"전라남도\", \"전라북도\", \"충청남도\", \"충청북도\", \"세종특별자치시\", \"강원도\", \"경기도\", \"울산광역시\", \"대전광역시\", \"광주광역시\", \"인천광역시\", \"대구광역시\", \"부산광역시\", \"제주특별자치도\"]\n        city = random.choices(cities, weights=probs_city, k=1)[0]\n\n        # 구매 사이트\n        site = random.choices(['11번가', '옥션', 'g마켓', '쿠팡', '위메프', '티몬', 'GS샵'], weights=probs_memo, k=1)[0]\n\n        # 판매자 평점\n        rate = random.choices(y, weights=probs, k=1)[0]\n\n        # 상품 분류\n        if sex == '남성':\n            item = random.choice(['청바지','점퍼','자켓','베스트','팬츠','셔츠', '수트','코트','남방','스웨터','티셔츠','가디건','니트'])\n        elif sex == '여성':\n            item = random.choice(['청바지', '자켓','팬츠','셔츠','원피스','스커트','코트','스웨터','티셔츠','가디건','니트','블라우스'])\n\n        # 상품 가격\n        price = random.choice(range(5000, 30000, 1000))\n\n        # 상품 개수\n        quantity = random.choice([1, 7])\n\n        # 결제 카드\n        card = random.choices(['우리', '신한', '국민', '하나', '롯데', '시티', '삼성'], weights=probs_memo, k=1)[0]\n\n        doc['접수번호'] = i\n        doc['주문시간'] = date\n        doc['수령시간'] = delivery_date\n        doc['예약여부'] = reserve\n        doc['배송메모'] = memo\n        doc['고객ip'] = ip\n        doc['고객성별'] = sex\n        doc['고객나이'] = age\n        doc['물건좌표'] = loc\n        doc['고객주소_시도'] = city\n        doc['구매사이트'] = site\n        doc['판매자평점'] = rate\n        doc['상품분류'] = item\n        doc['상품가격'] = price\n        doc['상품개수'] = quantity\n        doc['결제카드'] = card\n\n        es.index(index=name, doc_type=name, body=doc)\n"
  },
  {
    "path": "Week1_Kibana/code/insert.py",
    "content": "import os\nimport sys\nimport socket\nimport struct\nimport random\nimport datetime\n\nfrom elasticsearch import Elasticsearch\n\nfrom fake import fake_data\nfrom es_conf import properties\n\ndef main():\n\n    '''\n    sys.argv[1] : 데이터 개수\n    sys.argv[2] : index postfix\n    '''\n\n    # 1. es driver/client 연결\n    host = os.environ['fastcampus']\n    es = Elasticsearch(host)\n\n    # 2. 수강생 데이터 읽어서 이름 생성\n    with open('./email.txt', 'r') as f:\n        mails = [s.strip() for s in f.readlines()]\n    try:\n        postfix = sys.argv[2]\n        mail_list = [x.split('@')[0] + '_{}'.format(postfix) for x in mails]\n    except IndexError:\n        mail_list = [x.split('@')[0] for x in mails]\n\n    for idx, name in enumerate(mail_list):\n\n        # 3. mapping 생성\n        if not es.indices.exists(name):\n            es.indices.create(name)\n            mapping =  {name : properties}\n            es.indices.put_mapping(\n              index=name,\n              doc_type=name,\n              body=mapping\n            )\n\n        # 4. 데이터 삽입\n        n = int(sys.argv[1])\n        fake_data(es, name, n)\n        print('수강생 {}님의 데이터 {}개가 인덱스 {}에 정상적으로 입력되었습니다.'.format(\n            mails[idx].split('@')[0],\n            n,\n            mail_list[idx]\n          )\n        )\n    \n    print('-'*70)\n    print('총 {} 명의 데이터가 입력되었습니다.'.format(len(mail_list)))\n    print('-'*70)\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/all",
    "content": "# index\n.es(index=nginx-*)\n\n# timefield\n.es(index=nginx-*, timefield=@timestamp)\n\n# metric\n.es(index=nginx-*, timefield=@timestamp, metric=sum:nginx.access.body_sent.bytes)\n\n# query\n.es(index=nginx-*, timefield=@timestamp, metric=count, q=nginx.access.response_code:200)\n    \n# multi\n.es(index=nginx-*, timefield=@timestamp, metric=avg:nginx.access.body_sent.bytes).color(#00b8ff), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).color(#fd8282)\n\n# label\n.es(index=nginx-*, timefield=@timestamp, metric=avg:nginx.access.body_sent.bytes).color(#00b8ff).label(nginx), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).color(#fd8282).label(shopping)\n\n# divide\n.es(index=nginx-*, timefield=@timestamp, q=-nginx.access.response_code:200).divide(.es(index=nginx-*, timefield=@timestamp, metric=count)).label(에러비율)\n\n# offset\n.es(index=nginx-*, timefield=@timestamp, metric=count).label(현재).color(#00b8ff), .es(index=nginx-*, timefield=@timestamp, metric=count, offset=-1w).label(1주전).color(#fd8282)\n\n# range\n.es(index=nginx-*, timefield=@timestamp, metric=count, q=nginx.access.response_code:200).label(에러).range(0, 1)\n\n# scale interval\n.es(index=nginx-*, timefield=@timestamp, metric=count).scale_interval(1m)\n\n# if\n.es(index=nginx-*, timefield=@timestamp, metric=count).if(gte, 50, .es(index=nginx-*, timefield=@timestamp, metric=count), null)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/exercise",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp, \n  metric=count\n).label(50이하), \n    \n.es(\n  index=nginx-*, \n  timefield=@timestamp, \n  metric=count\n).if(\n    gte, \n    50, \n    .es(\n      index=nginx-*, \n      timefield=@timestamp, \n      metric=count), \n    null\n).label(50이상)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=count).label(50이하), .es(index=nginx-*, timefield=@timestamp, metric=count).if(gte, 50, .es(index=nginx-*, timefield=@timestamp, metric=count), null).label(50이상)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl10_scale_interval",
    "content": "# redable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp, \n  metric=count\n).scale_interval(1m)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=count).scale_interval(1m)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl11_if",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp, \n  metric=count\n).if(\n    gte, \n    50, \n    .es(\n      index=nginx-*,\n      timefield=@timestamp, \n      metric=count), \n    null\n)\n    \n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=count).if(gte, 50, .es(index=nginx-*, timefield=@timestamp, metric=count), null)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl1_index",
    "content": "# timelion code\n.es(index=nginx-*)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl2_timefield",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp\n)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl3_query",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp, \n  metric=count,\n  q=nginx.access.response_code:200\n)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=count, q=nginx.access.response_code:200)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl4_metric",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp, \n  metric=sum:nginx.access.body_sent.bytes\n)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=sum:nginx.access.body_sent.bytes)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl5_indices",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp,\n  metric=avg:nginx.access.body_sent.bytes\n).color(#00b8ff), \n\n.es(\n  index=shopping, \n  timefield=주문시간,\n  metric=sum:상품가격\n).color(#fd8282)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=avg:nginx.access.body_sent.bytes).color(#00b8ff), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).color(#fd8282)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl6_label",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp,\n  metric=avg:nginx.access.body_sent.bytes\n).color(#00b8ff).label(nginx), \n\n.es(\n  index=shopping, \n  timefield=주문시간,\n  metric=sum:상품가격\n).color(#fd8282).label(shopping)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=avg:nginx.access.body_sent.bytes).color(#00b8ff).label(nginx), .es(index=shopping, timefield=주문시간, metric=sum:상품가격).color(#fd8282).label(shopping)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl7_divide",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp,\n  q=-nginx.access.response_code:200\n).divide(\n  .es(\n    index=nginx-*,\n    timefield=@timestamp,\n    metric=count\n  )\n).label(성비)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, q=-nginx.access.response_code:200).divide(.es(index=nginx-*, timefield=@timestamp, metric=count)).label(에러비율)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl8_offset",
    "content": "# readable code\n.es(\n  index=nginx-*, \n  timefield=@timestamp, \n  metric=count\n).label(현재).color(#00b8ff), \n\n.es(\n  index=nginx-*, \n  timefield=@timestamp, \n  metric=count, \n  offset=-1w\n).label(1주전).color(#fd8282)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=count).label(현재).color(#00b8ff), .es(index=nginx-*, timefield=@timestamp, metric=count, offset=-1w).label(1주전).color(#fd8282)\n"
  },
  {
    "path": "Week2_Kibana/code/timelion/tl9_range",
    "content": "# redable code\n.es(\n  index=nginx-*,\n  timefield=@timestamp,\n  metric=count,\n  q=nginx.access.response_code:200\n).label(에러).range(0, 1)\n\n# timelion code\n.es(index=nginx-*, timefield=@timestamp, metric=count, q=nginx.access.response_code:200).label(에러).range(0, 1)\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/all",
    "content": "# keyword\n우리\n\n# Field Match\n결제카드:우리\n\n# Exact Field Match\n배송메모:\"상품 이상\"\n\n# Term\n상품분류: (\"니트\" \"코트\")\n\n# Fuzzy\n고객주소_시도:전라도~1\n\n# Proximity\n배송메모: \"내에 시간 배송 못함\"~2\n\n# Numeric\n상품가격:>5000\n\n# Range\n고객나이: [10 TO 30}\n\n# Wildcard (?)\n고객주소_시도:전라?도\n\n# Wildcard (*)\n상품\\*:셔츠\n\n# OR\n고객성별:여성 OR 상품분류:셔츠\n\n# AND\n고객성별:여성 AND 상품분류:셔츠\n\n# NOT\nNOT 구매사이트:옥션\n\n# +\n+예약여부:예약\n\n# -\n-구매사이트:11번가\n\n# +/-\n여성 셔츠 +예약 -11번가\n\n# exercise\n+_exists_: nginx.access.geoip.region_name +nginx.access.geoip.city_name: Se* -nginx.access.response_code: (\"200\", \"405\") nginx.access.method: POST\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/and",
    "content": "고객성별:여성 AND 상품분류:셔츠\n\n고객성별:여성 && 상품분류:셔츠\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/compound",
    "content": "여성 셔츠 +예약 -11번가\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/exact_field_match",
    "content": "배송메모:\"상품 이상\"\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/exercise",
    "content": "+_exists_: nginx.access.geoip.region_name +nginx.access.geoip.city_name: Se* -nginx.access.response_code: (\"200\", \"405\") nginx.access.method: POST\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/field_match",
    "content": "결제카드:우리\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/fuzzy",
    "content": "고객주소_시도:전라도~1\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/keyword",
    "content": "우리\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/negative",
    "content": "-구매사이트:11번가\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/not",
    "content": "NOT 구매사이트:옥션\n\n!구매사이트:옥션\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/numeric",
    "content": "상품가격:>5000\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/or",
    "content": "고객성별:여성 OR 상품분류:셔츠\n\n고객성별:여성 || 상품분류:셔츠\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/positive",
    "content": "+예약여부:예약\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/proximity",
    "content": "배송메모: \"내에 시간 배송 못함\"~2\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/range",
    "content": "고객나이: [10 TO 30}\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/term",
    "content": "상품분류: (\"니트\" \"코트\")\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/wildcard_1",
    "content": "고객주소_시도:전라?도\n"
  },
  {
    "path": "Week3_Kibana/code/lucene_query_syntax/wildcard_2",
    "content": "상품\\*:셔츠\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/arithmetic_operation_1",
    "content": "(doc['수령시간'].value.getMillis()-doc['주문시간'].value.getMillis())/1000/60/60\t\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/arithmetic_operation_2",
    "content": "doc['상품가격'].value * doc['상품개수'].value\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/concat_1",
    "content": "doc['고객성별'].value + '-' + doc['결제카드'].value\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/date_1",
    "content": "doc['주문시간'].date.hourOfDay\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/date_2",
    "content": "doc['주문시간'].date.dayOfWeek\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/date_3",
    "content": "# option 1\nLocalDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getHour()\t\n\n# option 2\nZonedDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getHour()\t\n\n# option 3\nInstant.ofEpochMilli(doc['주문시간'].date.millis).atZone(ZoneId.of(\"Asia/Seoul\")).hour\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/date_4",
    "content": "# option 1\nLocalDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getDayOfWeek()\n\n# option 2\nZonedDateTime.ofInstant(Instant.ofEpochMilli(doc['주문시간'].value.millis), ZoneId.of('Asia/Seoul')).getDayOfWeek()\n\n# option 3\nInstant.ofEpochMilli(doc['주문시간'].date.millis).atZone(ZoneId.of(\"Asia/Seoul\")).dayOfWeek\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/date_5",
    "content": "Instant.ofEpochMilli(doc['주문시간'].date.millis).atZone(ZoneId.of(\"Asia/Seoul\")).dayOfWeek.getValue()\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/if_1",
    "content": "if (doc['고객나이'].value < 20) { \n    return \"10대\" \n} \nelse if (doc['고객나이'].value < 40) { \n    return \"20~30대\" \n} \nelse { \n    return \"40대 이상\" \n}\n"
  },
  {
    "path": "Week3_Kibana/code/scripted_field/if_2",
    "content": "if (doc['상품개수'].value < 3) { \n  return \"저소비\" \n} \nelse if (doc['고객나이'].value < 6) { \n  return \"평균\" \n} \nelse {\n  return \"과소비\"\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/array/indexing",
    "content": "POST array/array\n{ \n  \"결제카드\" : [\"씨티\", \"국민\"],\n  \"고객성별\" : \"여성\",   \n  \"상품\" : [\n    {\n      \"구매사이트\" : \"쿠팡\",\n      \"분류\" : \"셔츠\"\n    },\n    {\n      \"구매사이트\" : \"11번가\",\n      \"분류\" : \"팬츠\"\n    }\n  ]\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/array/mapping",
    "content": "PUT array\n{\n  \"mappings\": {\n    \"array\": { \n      \"properties\": {\n        \"결제카드\": {\n          \"type\": \"keyword\"\n        },\n        \"고객성별\": {\n          \"type\": \"keyword\"\n        },\n        \"상품\": { \n          \"properties\": {\n            \"구매사이트\":  { \"type\": \"keyword\" },\n            \"분류\":  { \"type\": \"keyword\" }\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/array/search",
    "content": "GET /array/_search\n{\n  \"query\": {\n    \"bool\": {\n      \"must\": [\n        { \n          \"match\": { \n            \"상품.구매사이트\": \"11번가\"\n          }\n        },\n        { \n          \"match\": { \n            \"상품.분류\":  \"셔츠\" \n          }\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/nested/indexing",
    "content": "POST nested/nested\n{ \n  \"결제카드\" : [\"씨티\", \"국민\"],\n  \"고객성별\" : \"여성\",   \n  \"상품\" : [\n    {\n      \"구매사이트\" : \"쿠팡\",\n      \"분류\" : \"셔츠\"\n    },\n    {\n      \"구매사이트\" : \"11번가\",\n      \"분류\" : \"팬츠\"\n    }\n  ]\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/nested/mapping",
    "content": "PUT nested\n{\n  \"mappings\": {\n    \"nested\": { \n      \"properties\": {\n        \"결제카드\": {\n          \"type\": \"keyword\"\n        },\n        \"고객성별\": {\n          \"type\": \"keyword\"\n        },\n        \"상품\": { \n          \"type\": \"nested\",\n          \"properties\": {\n            \"구매사이트\":  { \"type\": \"keyword\" },\n            \"분류\":  { \"type\": \"keyword\" }\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/nested/search_1",
    "content": "GET /nested/_search\n{\n  \"query\": {\n    \"nested\": {\n      \"path\": \"상품\",\n      \"query\": {\n        \"bool\": {\n          \"must\": [\n            {\n              \"match\" : {\n                \"상품.구매사이트\" : \"11번가\"\n              }\n            },\n            {\n              \"match\" : {\n                \"상품.분류\" : \"셔츠\"\n              }\n            }\n          ]\n        }\n      }\n    }\n  }\n}   \n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/nested/search_2",
    "content": "GET /nested/_search\n{\n  \"query\": {\n    \"nested\": {\n      \"path\": \"상품\",\n      \"query\": {\n        \"bool\": {\n          \"must\": [\n            {\n              \"match\" : {\n                \"상품.구매사이트\" : \"11번가\"\n              }\n            },\n            {\n              \"match\" : {\n                \"상품.분류\" : \"팬츠\"\n              }\n            }\n          ]\n        }\n      }\n    }\n  }\n}   \n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/object/indexing",
    "content": "POST shopping/shopping\n{ \n  \"고객주소_시도\": \"서울특별시\",\n  \"상품\": { \n    \"가격\": 27000,\n    \"분류\": \"팬츠\", \n    \"개수\": 7\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/complex/object/mapping",
    "content": "PUT object\n{\n  \"mappings\": {\n    \"object\": { \n      \"properties\": {\n        \"고객주소_시도\": {\n          \"type\": \"keyword\"\n        },\n        \"상품\": { \n          \"properties\": {\n            \"가격\":  { \"type\": \"integer\" },\n            \"분류\":  { \"type\": \"keyword\" },\n            \"개수\":  { \"type\": \"integer\" },\n             }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/core/float",
    "content": "PUT my_index\n{\n  \"mappings\": {\n    \"my_type\": {\n      \"properties\": {\n        \"test-double\": {\n          \"type\": \"double\"\n        },\n        \"test-half-float\": {\n          \"type\": \"half_float\"\n        }\n      }\n    }\n  }\n}\n\nPOST my_index/my_type\n{\n  \"test-double\" : 3.1,\n  \"test-half-float\" : 3.1\n}\n\nPOST my_index/my_type\n{\n  \"test-double\" : 3.111111,\n  \"test-half-float\" : 3.111111\n}\n\nPOST my_index/my_type\n{\n  \"test-double\" : 3.11111122222,\n  \"test-half-float\" : 3.11111122222\n}\n\nGET /my_index/_search\n{\n  \"query\" : {\n    \"range\": {\n      \"test-double\": {\n        \"gte\": 3.111111,\n        \"lte\" : 3.1111112\n      }\n    }\n  }\n}\n\nGET /my_index/_search\n{\n  \"query\" : {\n    \"range\": {\n      \"test-half-float\": {\n        \"gte\": 3.111111,\n        \"lte\" : 3.1111112\n      }\n    }\n  }\n}\n\nGET /my_index/_search\n{\n  \"query\": {\n    \"match_all\": {}\n  }\n}\n\nGET /my_index/_search\n{ \n  \"query\": {\n    \"match_all\": {}\n  }, \n  \"docvalue_fields\": [\n    \"test-double\", \"test-half-float\"\n  ]\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/core/numeric",
    "content": "PUT my_index\n{\n  \"mappings\": {\n    \"my_type\": {\n      \"properties\": {\n        \"test\": {\n          \"type\": \"byte\"\n        }\n      }\n    }\n  }\n}\n\nPOST my_index/my_type\n{\n  \"test\" : 129\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/data-type/core/string",
    "content": "PUT my_index\n{\n  \"mappings\": {\n    \"my_type\": {\n      \"properties\": {\n        \"test-keyword\": {\n          \"type\": \"keyword\"\n        },\n        \"test-text\": {\n          \"type\": \"text\"\n        }\n      }\n    }\n  }\n}\n\nPOST my_index/my_type\n{\n  \"test-keyword\" : \"패스트캠퍼스 엘라스틱서치\",\n  \"test-text\" : \"패스트캠퍼스 엘라스틱서치\"\n}\n\nGET /my_index/_search\n{\n  \"query\": {\n    \"term\": {\n      \"test-keyword\": \"패스트캠퍼스\"\n    }\n  }\n}\n\nGET /my_index/_search\n{\n  \"query\": {\n    \"term\": {\n      \"test-text\": \"패스트캠퍼스\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/add-document-post",
    "content": "POST week4_higee/week4_higee\n{\n  \"price\" : 5000,\n  \"age\" : 19\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/add-document-put",
    "content": "PUT week4_higee/week4_higee/1\n{\n  \"price\" : 10000,\n  \"age\" : 17\n}\n\nPUT week4_higee/week4_higee/2\n{\n  \"price\" : 2000,\n  \"age\" : 20\n}\n\nPUT week4_higee/week4_higee/3\n{\n  \"price\" : 1000,\n  \"age\" : 25\n}\n\nPUT week4_higee/week4_higee/4\n{\n  \"price\" : 7000,\n  \"age\" : 33\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/check-document-id",
    "content": "GET /week4_higee/week4_higee/1\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/delete-document-id",
    "content": "DELETE week4_higee/week4_higee/1\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/delete-document-query",
    "content": "POST week4_higee/_delet_by_query\n{\n  \"query\" : {\n    \"match\" : {\n      \"age\" : 20\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/exercise",
    "content": "# exercise2-without-mapping index 생성\nPUT exercise2-without-mapping\n\n# 다음과 같은 Document 생성 (type 이름 : exercise2)\nPOST exercise2-without-mapping/exercise2\n{\n  \"name\" : \"elastic stack\",\n  \"major_version\" : 6,\n  \"version\" : \"6.2.4\"\n}\n\n# exercise2-without-mapping index의 mapping 확인\nGET exercise2-without-mapping/_mapping\n\n# index 이름이 exercise2-with-mapping, type 이름이 exercise2인 index를 만들면서 아래와 같은 mapping 생성\nPUT exercise2-with-mapping\n{\n  \"mappings\": {\n    \"exercise2\": {\n      \"properties\": {\n        \"name\": {\n          \"type\": \"keyword\"\n        },\n        \"major_version\": {\n          \"type\": \"byte\"\n        },\n        \"version\": {\n          \"type\": \"keyword\"\n        }\n      }\n    }\n  }\n}\n\n# exercise2-without-mapping (source)를 exercise2-with-mapping (destination)로 재색인\nPOST _reindex\n{\n  \"source\": {\n    \"index\": \"exercise2-without-mapping\"\n  },\n  \"dest\": {\n    \"index\": \"exercise2-with-mapping\"\n  }\n}\n\n# exercise2-with-mapping의 mapping 확인\nGET exercise2-with-mapping\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/reindex-all-documents",
    "content": "POST _reindex\n{\n  \"source\": {\n    \"index\": \"week4_higee\"\n  },\n  \"dest\": {\n    \"index\": \"week4_higee_reindex\"\n  }\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/reindex-some-documents",
    "content": "POST _reindex\n{\n  \"source\": {\n    \"index\": \"week4_higee\",\n    \"type\" : \"week4_higee\",\n    \"query\": {\n      \"term\": {\n        \"age\": 19\n      }\n    }\n  },\n  \"dest\": {\n    \"index\": \"week4_higee_reindex2\"\n  }\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/update-document-id-all-fields",
    "content": "PUT week4_higee/week4_higee/3\n{\n  \"warning\" : \"해당 Document 전체 변경\"\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/update-document-id-some-fields",
    "content": "POST week4_higee/week4_higee/3/_update\n{\n  \"doc\": {\n    \"age\" : 50\n  } \n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/update-document-query",
    "content": "POST week4_higee/week4_higee/_update_by_query\n{\n  \"script\": {\n    \"source\": \"ctx._source['age'] = 50\"\n  },\n  \"query\": {\n    \"term\": {\n      \"age\": 33\n    }\n  }\n}\n\nPOST week4_higee/week4_higee/_update_by_query\n{\n  \"script\": {\n    \"source\": \"ctx._source.age = 70\"\n  },\n  \"query\": {\n    \"term\": {\n      \"age\": 50\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/document/upsert-document",
    "content": "POST week4_higee/week4_higee/4/_update\n{\n  \"doc\" : {\n    \"price\" : 50000\n  },\n  \"doc_as_upsert\" : true\n}\n\nPOST week4_higee/week4_higee/777/_update\n{\n  \"doc\" : {\n    \"price\" : 50000\n  },\n  \"doc_as_upsert\" : true\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/add-mapping",
    "content": "PUT week4_higee\n\nPUT week4_higee/_mapping/week4_higee\n{\n  \"properties\": {\n    \"age\" : {\n      \"type\" : \"integer\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/check-mapping",
    "content": "GET week4_higee/_mapping \n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/check-mapping-template",
    "content": "PUT higee-log-2018.01.01\n\nGET higee-log-2018.01.01/_mapping\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/create-index",
    "content": "PUT week4_higee\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-template",
    "content": "PUT _template/template_higee\n{\n  \"template\" : \"higee-log-*\",\n  \"mappings\" : {\n    \"my_type\" : {\n      \"properties\" : {\n        \"price\" : {\n          \"type\" : \"integer\"\n        },\n        \"time\" : {\n          \"type\" : \"date\"\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-with-index",
    "content": "PUT week4_higee\n\nPUT week4_higee/_mapping/week4_higee\n{\n  \"properties\" : {\n    \"price\" : {\n      \"type\" : \"integer\"\n    }\n  }\n} \n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/create-mapping-without-index",
    "content": "DELETE week4_higee\n\nPUT week4_higee_mapping\n{\n  \"mappings\" : {\n    \"week4_higee_mapping\" : {\n      \"properties\" : {\n        \"price\" : {\n          \"type\" : \"integer\"\n          },\n        \"time\" : {\n          \"type\" : \"date\"\n        }    \n      }\n    }\n  }\n} \n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/delete-index",
    "content": "DELETE week4_higee\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/indices/exercise",
    "content": "# shopping index mapping 확인\nGET shopping/_mapping\n\n# shopping index와 동일한 index 생성\nPUT shopping \n{\n  \"mappings\": {\n    \"shopping\": {\n      \"properties\": {\n        \"접수번호\": {\n          \"type\": \"integer\"\n        },\n        \"주문시간\": {\n          \"type\": \"date\"\n        },\n        \"수령시간\": {\n          \"type\": \"date\"\n        },\n\n        \"예약여부\": {\n          \"type\": \"keyword\"\n        },\n        \"배송메모\": {\n          \"type\": \"text\"\n        },\n        \"고객ip\": {\n          \"type\": \"ip\"\n        },\n        \"고객성별\": {\n          \"type\": \"keyword\"\n        },\n        \"고객나이\": {\n          \"type\": \"integer\"\n        },\n        \"물건좌표\": {\n          \"type\": \"geo_point\"\n        },\n        \"고객주소_시도\": {\n          \"type\": \"keyword\"\n        },\n        \"구매사이트\": {\n          \"type\": \"keyword\"\n        },\n        \"판매자평점\": {\n          \"type\": \"integer\"\n        },\n        \"상품분류\": {\n          \"type\": \"keyword\"\n        },\n        \"상품가격\": {\n          \"type\": \"integer\"\n        },\n        \"상품개수\": {\n          \"type\": \"integer\"\n        },\n        \"결제카드\": {\n          \"type\": \"keyword\"\n        }\n      }\n    }\n  }\n}\n\n# 환불여부 Field 추가 (Keyword)\nPUT shopping/_mapping/shopping\n{                                 \n  \"properties\": {                 \n    \"환불여부\" : {              \n      \"type\" : \"keyword\"      \n    }                              \n  }                                \n}         \n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/from-size",
    "content": "GET /shopping/_search\n{\n  \"from\" : 0, \n  \"size\" : 1,\n  \"query\" : {\n    \"match_all\" : {}\n  }\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"bool\": {\n      \"must\": [\n        { \"term\": { \"고객주소_시도\": \"서울특별시\"}},\n        { \"prefix\": { \"구매사이트\" : \"11\"}}\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b-or-c",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"bool\": {\n      \"must\": [\n        { \"term\": { \"고객주소_시도\": \"서울특별시\"}}\n      ], \n      \"should\": [\n        { \"prefix\": { \"구매사이트\" : \"11\"}},\n        { \"range\": { \"고객나이\": { \"lt\": 30}}}\n      ],\n      \"minimum_should_match\": 1\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-b-or-c-or-d",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"bool\": {\n      \"must\": [\n        { \"term\": { \"고객주소_시도\": \"서울특별시\" }}\n      ], \n      \"should\": [\n        { \"prefix\": { \"구매사이트\" : \"11\"}},\n        { \"range\": { \"고객나이\": { \"lt\": 30}}},\n        { \"script\": { \"script\" : { \"source\" : \"Instant.ofEpochMilli(doc['주문시간'].value.millis).atZone(ZoneId.of('Asia/Seoul')).hour > 15\"}}}\n      ],\n      \"minimum_should_match\": 2\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-and-not-b",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"bool\": {\n      \"must\": [\n        { \"term\": { \"고객주소_시도\": \"서울특별시\" }}\n      ],\n      \"must_not\": [\n        { \"prefix\": { \"구매사이트\" : \"11\"}}\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-a-or-b",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"bool\": {\n      \"should\": [\n        { \"term\": { \"고객주소_시도\": \"서울특별시\"}},\n        { \"prefix\": { \"구매사이트\" : \"11\"}}\n      ],\n      \"minimum_should_match\": 1\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Compound-queries/bool-example",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"bool\": {\n      \"must\": [\n        {\n          \"term\" : {\n            \"고객주소_시도\" : \"서울특별시\"\n          }\n        }\n      ], \n      “must_not”: [\n        {\n          \"term\" : {\n            “상품분류\" : \"셔츠\"\n          }\n        }\n      ], \n      \"should\": [\n        {\n          \"term\": {\n            \"결제카드\": \"시티\"\n          }\n        }\n      ],\n      \"minimum_should_match\": 1\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Full-text-queries/match",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"match\": {\n      \"배송메모\": \"배송 못함\"\n    }\n  }\n}\n\nGET /shopping/_search\n{\n  \"query\": {\n    \"match\": {\n      \"배송메모\": \"시간 못함\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Full-text-queries/query-string",
    "content": "GET /shopping/_search\n{\n  \"query\" : {\n    \"query_string\" : {\n      \"query\": \"고객나이 : [10 TO 25]\"\n    }\n  }\n}\n\nGET /shopping/_search\n{\n  \"query\": {\n    \"query_string\": {\n      \"query\": \"고객나이 : [10 TO 25] AND 쿠팡\",\n    }\n  }\n}\n\nGET /shopping/_search\n{\n  \"query\": {\n    \"query_string\": {\n      \"query\": \"+고객나이 : [10 TO 25] +구매사이트: 쿠팡\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Specialized-queries/script-query",
    "content": "GET /shopping/_search\n{\n  \"query\" : {\n    \"script\" : {\n      \"script\" : {\n        \"source\" :\n          \"\"\"Instant.ofEpochMilli(doc['주문시간'].value.millis)\n          .atZone(ZoneId.of('Asia/Seoul')).hour > 10\"\"\",\n        \"lang\" : \"painless\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/indexing",
    "content": "POST ml/doc\n{\n  \"keyword\" : \"Machine Learning\",\n  \"text\" : \"Machine Learning\"\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/keyword-match-search",
    "content": "GET ml/_search\n{\n  \"query\": {\n    \"match\": {\n      \"keyword\": \"machine\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"match\": {\n      \"keyword\": \"Machine\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"match\": {\n      \"keyword\": \"machine learning\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"match\": {\n      \"keyword\": \"Machine Learning\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/keyword-term-search",
    "content": "GET ml/_search\n{\n  \"query\": {\n    \"term\": {\n      \"keyword\": \"machine\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"term\": {\n      \"keyword\": \"Machine\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"term\": {\n      \"keyword\": \"machine learning\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"term\": {\n      \"keyword\": \"Machine Learning\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/mapping",
    "content": "PUT ml\n{\n  \"mappings\": {\n    \"doc\": {\n      \"properties\": {\n        \"keyword\" : {\n          \"type\": \"keyword\"\n        },\n        \"text\" : {\n          \"type\": \"text\"\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/text-match-search",
    "content": "GET ml/_search\n{\n  \"query\": {\n    \"match\": {\n      \"text\": \"machine\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"match\": {\n      \"text\": \"Machine\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"match\": {\n      \"text\": \"machine learning\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"match\": {\n      \"text\": \"Machine Learning\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/TERM-VS-MATCH/text-term-search",
    "content": "GET ml/_search\n{\n  \"query\": {\n    \"term\": {\n      \"text\": \"machine\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"term\": {\n      \"text\": \"Machine\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"term\": {\n      \"text\": \"machine learning\"\n    }\n  }\n}\n\nGET ml/_search\n{\n  \"query\": {\n    \"term\": {\n      \"text\": \"Machine Learning\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/exists",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"exists\" : { \n      \"field\" : \"상품분류\" \n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/fuzzy",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"fuzzy\" : {\n      \"고객주소_시도\" : \"경상북남\"\n    }\n  }\n}\n\n# parameters \nGET /shopping/_search\n{\n  \"query\": {\n    \"fuzzy\" : {\n      \"고객주소_시도\" : {\n        \"value\" : \"경상북남\",\n        \"fuzziness\": 2\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/prefix",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"prefix\" : { \n      \"고객주소_시도\" : \"경상\" \n    }\n  }\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/range",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"range\": {\n      \"주문시간\": {\n        \"gte\": \"2017-02-15\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/term",
    "content": "GET /shopping/_search\n{\n  \"query\" : {\n    \"term\" : {\n      \"상품분류\" : \"셔츠\"\n    }\n  }\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/terms",
    "content": "GET /shopping/_search\n{\n  \"query\" : {\n    \"terms\" : {\n      \"상품분류\" : [\"셔츠\", \"스웨터\"]\n    }\n  }\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/Term-level-queries/wildcard",
    "content": "# wildcard : *\nGET /shopping/_search\n{\n  \"query\": {\n    \"wildcard\" : { \n      \"고객주소_시도\" : \"경*도\" \n    }\n  }\n}\n\n# wildcard : ?\nGET shopping/_search\n{\n  \"query\": {\n    \"wildcard\" : {\n      \"고객주소_시도\" : \"경?도\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/query_dsl/match_all",
    "content": "# type 명시\nGET /shopping/shopping/_search\n{\n  \"query\" : {\n    \"match_all\" : {}\n  }\n}\n\n# type 생략\nGET /shopping/_search\n{\n  \"query\" : {\n    \"match_all\" : {}\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/sort",
    "content": "GET /shopping/_search\n{\n  \"query\": {\n    \"match_all\": {}\n  },\n  \"sort\": [\n    {\n      \"판매자평점\": {\n        \"order\": \"desc\"\n      }\n    }\n  ]\n}\n\n"
  },
  {
    "path": "Week4_Elasticsearch/code/elasticsearch_API/search/source",
    "content": "GET /shopping/_search\n{\n  \"_source\": \"구매사이트\",\n  \"query\" : {\n    \"match_all\" : {}\n  }\n}\n\nGET /shopping/_search\n{\n  \"_source\": {\n    \"includes\" : [\"고객*\", \"구매사이트\"],\n    \"excludes\" : \"상품*\"\n  },\n  \"query\" : {\n    \"match_all\" : {}\n  }\n}\n"
  },
  {
    "path": "Week4_Elasticsearch/object/dashboard/nginx-dashboard.json",
    "content": "[\n  {\n    \"_id\": \"bd2418e0-6f26-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"dashboard\",\n    \"_source\": {\n      \"title\": \"nginx\",\n      \"hits\": 0,\n      \"description\": \"\",\n      \"panelsJSON\": \"[{\\\"panelIndex\\\":\\\"1\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":3,\\\"w\\\":6,\\\"h\\\":3,\\\"i\\\":\\\"1\\\"},\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 350\\\":\\\"rgb(247,252,245)\\\",\\\"1,050 - 1,400\\\":\\\"rgb(35,139,69)\\\",\\\"350 - 700\\\":\\\"rgb(199,233,192)\\\",\\\"700 - 1,050\\\":\\\"rgb(116,196,118)\\\"},\\\"legendOpen\\\":false}},\\\"id\\\":\\\"fe7b9a30-6f20-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"2\\\",\\\"gridData\\\":{\\\"x\\\":6,\\\"y\\\":3,\\\"w\\\":4,\\\"h\\\":3,\\\"i\\\":\\\"2\\\"},\\\"id\\\":\\\"25a7f140-6f20-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"3\\\",\\\"gridData\\\":{\\\"x\\\":10,\\\"y\\\":3,\\\"w\\\":2,\\\"h\\\":3,\\\"i\\\":\\\"3\\\"},\\\"id\\\":\\\"cfbbc570-6f26-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"4\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":13,\\\"w\\\":12,\\\"h\\\":4,\\\"i\\\":\\\"4\\\"},\\\"embeddableConfig\\\":{\\\"mapCenter\\\":[15.284185114076445,12.128906250000002],\\\"mapZoom\\\":2},\\\"id\\\":\\\"7a9123a0-6f27-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"5\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":9,\\\"w\\\":12,\\\"h\\\":4,\\\"i\\\":\\\"5\\\"},\\\"id\\\":\\\"08e28cc0-6f28-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"6\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":0,\\\"w\\\":12,\\\"h\\\":3,\\\"i\\\":\\\"6\\\"},\\\"id\\\":\\\"57d11570-6f2a-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"7\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":17,\\\"w\\\":6,\\\"h\\\":3,\\\"i\\\":\\\"7\\\"},\\\"id\\\":\\\"98a8d0b0-6f2a-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"8\\\",\\\"gridData\\\":{\\\"x\\\":6,\\\"y\\\":17,\\\"w\\\":6,\\\"h\\\":3,\\\"i\\\":\\\"8\\\"},\\\"id\\\":\\\"4b2430e0-6f2b-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"9\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":20,\\\"w\\\":12,\\\"h\\\":3,\\\"i\\\":\\\"9\\\"},\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"colors\\\":{\\\"200\\\":\\\"#6ED0E0\\\",\\\"NOT 200\\\":\\\"#F29191\\\",\\\"nginx.access.response_code:200\\\":\\\"#F29191\\\"},\\\"legendOpen\\\":true}},\\\"id\\\":\\\"c1d84360-6f2c-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"10\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":23,\\\"w\\\":12,\\\"h\\\":3,\\\"i\\\":\\\"10\\\"},\\\"id\\\":\\\"7b3cdde0-6f30-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"12\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":6,\\\"w\\\":12,\\\"h\\\":3,\\\"i\\\":\\\"12\\\"},\\\"id\\\":\\\"de77bd70-6f31-11e8-a0fb-51f0eb991705\\\",\\\"sort\\\":[\\\"nginx.access.body_sent.bytes\\\",\\\"desc\\\"],\\\"type\\\":\\\"search\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"13\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":26,\\\"w\\\":12,\\\"h\\\":3,\\\"i\\\":\\\"13\\\"},\\\"id\\\":\\\"b23c8a00-6f32-11e8-a0fb-51f0eb991705\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"}]\",\n      \"optionsJSON\": \"{\\\"darkTheme\\\":false,\\\"hidePanelTitles\\\":false,\\\"useMargins\\\":true}\",\n      \"version\": 1,\n      \"timeRestore\": false,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"},\\\"filter\\\":[],\\\"highlightAll\\\":true,\\\"version\\\":true}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week4_Elasticsearch/object/dashboard/shopping-dashboard.json",
    "content": "[\n  {\n    \"_id\": \"71dedc90-82c1-11e8-8161-3b4280559eb3\",\n    \"_type\": \"dashboard\",\n    \"_source\": {\n      \"title\": \"shopping\",\n      \"hits\": 0,\n      \"description\": \"\",\n      \"panelsJSON\": \"[{\\\"panelIndex\\\":\\\"20\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":14,\\\"w\\\":6,\\\"h\\\":4,\\\"i\\\":\\\"20\\\"},\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"legendOpen\\\":false}},\\\"id\\\":\\\"AWJdii5xzMQVnr-9MxxQ\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"21\\\",\\\"gridData\\\":{\\\"x\\\":6,\\\"y\\\":3,\\\"w\\\":6,\\\"h\\\":4,\\\"i\\\":\\\"21\\\"},\\\"embeddableConfig\\\":{\\\"mapCenter\\\":[36.54494944148322,128.199462890625],\\\"mapZoom\\\":6},\\\"id\\\":\\\"AWJgEGqCzMQVnr-9MxxW\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"22\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":0,\\\"w\\\":9,\\\"h\\\":3,\\\"i\\\":\\\"22\\\"},\\\"id\\\":\\\"AWJglBU6zMQVnr-9Mxxa\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"24\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":3,\\\"w\\\":6,\\\"h\\\":4,\\\"i\\\":\\\"24\\\"},\\\"id\\\":\\\"AWJgsNh9zMQVnr-9Mxxe\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"25\\\",\\\"gridData\\\":{\\\"x\\\":9,\\\"y\\\":0,\\\"w\\\":3,\\\"h\\\":3,\\\"i\\\":\\\"25\\\"},\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 100\\\":\\\"rgb(0,104,55)\\\"}}},\\\"id\\\":\\\"AWJguWqpzMQVnr-9Mxxg\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"26\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":7,\\\"w\\\":6,\\\"h\\\":4,\\\"i\\\":\\\"26\\\"},\\\"id\\\":\\\"AWJgycpEzMQVnr-9Mxxi\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"27\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":11,\\\"w\\\":6,\\\"h\\\":3,\\\"i\\\":\\\"27\\\"},\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"legendOpen\\\":false}},\\\"id\\\":\\\"AWJg0q4CzMQVnr-9Mxxk\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"28\\\",\\\"gridData\\\":{\\\"x\\\":6,\\\"y\\\":11,\\\"w\\\":6,\\\"h\\\":3,\\\"i\\\":\\\"28\\\"},\\\"id\\\":\\\"AWJg1XpWzMQVnr-9Mxxl\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"29\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":18,\\\"w\\\":12,\\\"h\\\":4,\\\"i\\\":\\\"29\\\"},\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"params\\\":{\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null}}}},\\\"id\\\":\\\"AWJg1wbTzMQVnr-9Mxxm\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"30\\\",\\\"gridData\\\":{\\\"x\\\":6,\\\"y\\\":14,\\\"w\\\":6,\\\"h\\\":4,\\\"i\\\":\\\"30\\\"},\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 1\\\":\\\"rgb(165,0,38)\\\",\\\"1 - 2\\\":\\\"rgb(249,142,82)\\\",\\\"2 - 3\\\":\\\"rgb(255,255,190)\\\",\\\"3 - 4\\\":\\\"rgb(135,203,103)\\\",\\\"4 - 5\\\":\\\"rgb(0,104,55)\\\"}}},\\\"id\\\":\\\"AWJg3QUCzMQVnr-9Mxxo\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"31\\\",\\\"gridData\\\":{\\\"x\\\":0,\\\"y\\\":22,\\\"w\\\":12,\\\"h\\\":3,\\\"i\\\":\\\"31\\\"},\\\"id\\\":\\\"AWGI8fjSPloSIAlpOE6c\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"panelIndex\\\":\\\"32\\\",\\\"gridData\\\":{\\\"x\\\":6,\\\"y\\\":7,\\\"w\\\":6,\\\"h\\\":4,\\\"i\\\":\\\"32\\\"},\\\"version\\\":\\\"6.2.4\\\",\\\"type\\\":\\\"visualization\\\",\\\"id\\\":\\\"147d34a0-82c8-11e8-8161-3b4280559eb3\\\",\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 55\\\":\\\"rgb(255,255,204)\\\",\\\"55 - 110\\\":\\\"rgb(254,217,118)\\\",\\\"110 - 165\\\":\\\"rgb(253,141,60)\\\",\\\"165 - 220\\\":\\\"rgb(227,27,28)\\\"},\\\"legendOpen\\\":false}}}]\",\n      \"optionsJSON\": \"{\\\"darkTheme\\\":false,\\\"useMargins\\\":false}\",\n      \"version\": 1,\n      \"timeRestore\": false,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"filter\\\":[],\\\"highlightAll\\\":true,\\\"version\\\":true,\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":{\\\"match_all\\\":{}}}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week4_Elasticsearch/object/search/nginx-search.json",
    "content": "[\n  {\n    \"_id\": \"de77bd70-6f31-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"search\",\n    \"_source\": {\n      \"title\": \"[nginx] search\",\n      \"description\": \"\",\n      \"hits\": 0,\n      \"columns\": [\n        \"nginx.access.url\",\n        \"nginx.access.response_code\",\n        \"nginx.access.body_sent.bytes\"\n      ],\n      \"sort\": [\n        \"@timestamp\",\n        \"desc\"\n      ],\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"highlightAll\\\":true,\\\"version\\\":true,\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week4_Elasticsearch/object/visualization/nginx-visualization.json",
    "content": "[\n  {\n    \"_id\": \"57d11570-6f2a-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] markdown\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] markdown\\\",\\\"type\\\":\\\"markdown\\\",\\\"params\\\":{\\\"fontSize\\\":10,\\\"markdown\\\":\\\"### Nginx Access.Log Dashboard\\\\n---\\\\n```\\\\n66.249.82.131 - - [13/Jun/2018:17:01:02 +0000] \\\\\\\"GET /ui/favicons/favicon-16x16.png HTTP/1.1\\\\\\\" 304 0 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"118.221.38.242\\\\\\\"\\\\n118.221.38.242 - - [13/Jun/2018:17:01:14 +0000] \\\\\\\"POST /api/console/proxy?path=_aliases&method=GET HTTP/1.1\\\\\\\" 200 107 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"-\\\\\\\"\\\\n118.221.38.242 - - [13/Jun/2018:17:01:14 +0000] \\\\\\\"POST /api/console/proxy?path=_mapping&method=GET HTTP/1.1\\\\\\\" 200 974 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"-\\\\\\\"\\\\n66.249.82.131 - - [13/Jun/2018:17:01:16 +0000] \\\\\\\"GET /ui/favicons/favicon-32x32.png HTTP/1.1\\\\\\\" 304 0 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"118.221.38.242\\\\\\\"\\\\n66.249.82.129 - - [13/Jun/2018:17:01:17 +0000] \\\\\\\"GET /ui/favicons/favicon-16x16.png HTTP/1.1\\\\\\\" 304 0 \\\\\\\"http://kibana.higee.co/app/kibana\\\\\\\" \\\\\\\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36\\\\\\\" \\\\\\\"118.221.38.242\\\\\\\"\\\\n```\\\"},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"7a9123a0-6f27-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] coordinate maps\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] coordinate maps\\\",\\\"type\\\":\\\"tile_map\\\",\\\"params\\\":{\\\"mapType\\\":\\\"Scaled Circle Markers\\\",\\\"isDesaturated\\\":true,\\\"addTooltip\\\":true,\\\"heatClusterSize\\\":1,\\\"legendPosition\\\":\\\"bottomright\\\",\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"wms\\\":{\\\"enabled\\\":false,\\\"options\\\":{\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true},\\\"baseLayersAreLoaded\\\":{},\\\"tmsLayers\\\":[{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}],\\\"selectedTmsLayer\\\":{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"geohash_grid\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.geoip.location\\\",\\\"autoPrecision\\\":true,\\\"isFilteredByCollar\\\":true,\\\"useGeocentroid\\\":true,\\\"precision\\\":2}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"7b3cdde0-6f30-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] Timelion\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] Timelion\\\",\\\"type\\\":\\\"timelion\\\",\\\"params\\\":{\\\"expression\\\":\\\".es(index=nginx*, timefield=@timestamp, metric=count).label(전체).lines(), .es(index=nginx*, timefield=@timestamp, q= -nginx.access.response_code:200, metric=count).divide(.es(index=nginx*, timefield=@timestamp, metric=count)).if(gte, 0.5, .es(index=nginx*, timefield=@timestamp, metric=count, q=-nginx.access.response_code:200), null).points().color(#fd8282).label('에러 50% 이상').legend(position=ne)\\\",\\\"interval\\\":\\\"auto\\\"},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"08e28cc0-6f28-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] region maps\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] region maps\\\",\\\"type\\\":\\\"region_map\\\",\\\"params\\\":{\\\"legendPosition\\\":\\\"bottomright\\\",\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"selectedLayer\\\":{\\\"attribution\\\":\\\"<p><a href=\\\\\\\"http://www.naturalearthdata.com/about/terms-of-use\\\\\\\">Made with NaturalEarth</a> | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"name\\\":\\\"World Countries\\\",\\\"weight\\\":1,\\\"format\\\":{\\\"type\\\":\\\"geojson\\\"},\\\"url\\\":\\\"https://vector.maps.elastic.co/blob/5659313586569216?elastic_tile_service_tos=agree&my_app_version=6.2.4\\\",\\\"fields\\\":[{\\\"name\\\":\\\"iso2\\\",\\\"description\\\":\\\"Two letter abbreviation\\\"},{\\\"name\\\":\\\"name\\\",\\\"description\\\":\\\"Country name\\\"},{\\\"name\\\":\\\"iso3\\\",\\\"description\\\":\\\"Three letter abbreviation\\\"}],\\\"created_at\\\":\\\"2017-04-26T17:12:15.978370\\\",\\\"tags\\\":[],\\\"id\\\":5659313586569216,\\\"layerId\\\":\\\"elastic_maps_service.World Countries\\\"},\\\"selectedJoinField\\\":{\\\"name\\\":\\\"iso2\\\",\\\"description\\\":\\\"Two letter abbreviation\\\"},\\\"isDisplayWarning\\\":true,\\\"wms\\\":{\\\"enabled\\\":false,\\\"options\\\":{\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true},\\\"baseLayersAreLoaded\\\":{},\\\"tmsLayers\\\":[{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}],\\\"selectedTmsLayer\\\":{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}},\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"outlineWeight\\\":2,\\\"showAllShapes\\\":true},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.geoip.country_code2\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":100,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"mapZoom\\\":2,\\\"mapCenter\\\":[11.695272733029402,24.433593750000004]}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"cfbbc570-6f26-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] metric\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] metric\\\",\\\"type\\\":\\\"metric\\\",\\\"params\\\":{\\\"addTooltip\\\":true,\\\"addLegend\\\":false,\\\"type\\\":\\\"metric\\\",\\\"metric\\\":{\\\"percentageMode\\\":false,\\\"useRanges\\\":false,\\\"colorSchema\\\":\\\"Green to Red\\\",\\\"metricColorMode\\\":\\\"None\\\",\\\"colorsRange\\\":[{\\\"from\\\":0,\\\"to\\\":10000}],\\\"labels\\\":{\\\"show\\\":true},\\\"invertColors\\\":false,\\\"style\\\":{\\\"bgFill\\\":\\\"#000\\\",\\\"bgColor\\\":false,\\\"labelColor\\\":false,\\\"subText\\\":\\\"\\\",\\\"fontSize\\\":31}}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"req\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"25a7f140-6f20-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] tag-cloud\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] tag-cloud\\\",\\\"type\\\":\\\"tagcloud\\\",\\\"params\\\":{\\\"scale\\\":\\\"linear\\\",\\\"orientation\\\":\\\"single\\\",\\\"minFontSize\\\":18,\\\"maxFontSize\\\":72},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.user_agent.os_name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"c1d84360-6f2c-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] area chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] area chart\\\",\\\"type\\\":\\\"line\\\",\\\"params\\\":{\\\"type\\\":\\\"line\\\",\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"truncate\\\":100},\\\"title\\\":{}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"req 개수\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":\\\"true\\\",\\\"type\\\":\\\"area\\\",\\\"mode\\\":\\\"stacked\\\",\\\"data\\\":{\\\"label\\\":\\\"req 개수\\\",\\\"id\\\":\\\"1\\\"},\\\"valueAxis\\\":\\\"ValueAxis-1\\\",\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"req 개수\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"@timestamp\\\",\\\"interval\\\":\\\"h\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"날짜\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"filters\\\",\\\"schema\\\":\\\"group\\\",\\\"params\\\":{\\\"filters\\\":[{\\\"input\\\":{\\\"query\\\":\\\"nginx.access.response_code:200\\\"},\\\"label\\\":\\\"200\\\"},{\\\"input\\\":{\\\"query\\\":\\\"NOT nginx.access.response_code:200\\\"},\\\"label\\\":\\\"NOT 200\\\"}]}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"colors\\\":{\\\"200\\\":\\\"#6ED0E0\\\",\\\"nginx.access.response_code:200\\\":\\\"#F29191\\\"},\\\"legendOpen\\\":false}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"1fe62120-6f37-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] Goal\",\n      \"visState\": \"{\\\"aggs\\\":[{\\\"enabled\\\":true,\\\"id\\\":\\\"1\\\",\\\"params\\\":{\\\"customBucket\\\":{\\\"enabled\\\":true,\\\"id\\\":\\\"1-bucket\\\",\\\"params\\\":{\\\"customInterval\\\":\\\"2h\\\",\\\"extended_bounds\\\":{},\\\"field\\\":\\\"@timestamp\\\",\\\"interval\\\":\\\"d\\\",\\\"min_doc_count\\\":1},\\\"schema\\\":{\\\"aggFilter\\\":[],\\\"deprecate\\\":false,\\\"editor\\\":false,\\\"group\\\":\\\"none\\\",\\\"max\\\":null,\\\"min\\\":0,\\\"name\\\":\\\"bucketAgg\\\",\\\"params\\\":[],\\\"title\\\":\\\"Bucket Agg\\\"},\\\"type\\\":\\\"date_histogram\\\"},\\\"customMetric\\\":{\\\"enabled\\\":true,\\\"id\\\":\\\"1-metric\\\",\\\"params\\\":{},\\\"schema\\\":{\\\"aggFilter\\\":[\\\"!top_hits\\\",\\\"!percentiles\\\",\\\"!percentile_ranks\\\",\\\"!median\\\",\\\"!std_dev\\\",\\\"!sum_bucket\\\",\\\"!avg_bucket\\\",\\\"!min_bucket\\\",\\\"!max_bucket\\\",\\\"!derivative\\\",\\\"!moving_avg\\\",\\\"!serial_diff\\\",\\\"!cumulative_sum\\\"],\\\"deprecate\\\":false,\\\"editor\\\":false,\\\"group\\\":\\\"none\\\",\\\"max\\\":null,\\\"min\\\":0,\\\"name\\\":\\\"metricAgg\\\",\\\"params\\\":[],\\\"title\\\":\\\"Metric Agg\\\"},\\\"type\\\":\\\"count\\\"}},\\\"schema\\\":\\\"metric\\\",\\\"type\\\":\\\"max_bucket\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"2\\\",\\\"params\\\":{\\\"filters\\\":[{\\\"input\\\":{\\\"query\\\":\\\"nginx.access.geoip.country_name: \\\\\\\"United States\\\\\\\"\\\"},\\\"label\\\":\\\"\\\"}]},\\\"schema\\\":\\\"group\\\",\\\"type\\\":\\\"filters\\\"}],\\\"params\\\":{\\\"addLegend\\\":false,\\\"addTooltip\\\":true,\\\"gauge\\\":{\\\"autoExtend\\\":false,\\\"backStyle\\\":\\\"Full\\\",\\\"colorSchema\\\":\\\"Green to Red\\\",\\\"colorsRange\\\":[{\\\"from\\\":0,\\\"to\\\":200}],\\\"extendRange\\\":true,\\\"gaugeColorMode\\\":\\\"None\\\",\\\"gaugeStyle\\\":\\\"Full\\\",\\\"gaugeType\\\":\\\"Arc\\\",\\\"invertColors\\\":false,\\\"labels\\\":{\\\"color\\\":\\\"black\\\",\\\"show\\\":true},\\\"orientation\\\":\\\"vertical\\\",\\\"percentageMode\\\":true,\\\"scale\\\":{\\\"color\\\":\\\"#333\\\",\\\"labels\\\":false,\\\"show\\\":false,\\\"width\\\":2},\\\"style\\\":{\\\"bgColor\\\":false,\\\"bgFill\\\":\\\"#000\\\",\\\"fontSize\\\":60,\\\"labelColor\\\":false,\\\"subText\\\":\\\"\\\"},\\\"type\\\":\\\"meter\\\",\\\"useRanges\\\":false,\\\"verticalSplit\\\":false},\\\"isDisplayWarning\\\":false,\\\"type\\\":\\\"gauge\\\"},\\\"title\\\":\\\"[nginx] Goal\\\",\\\"type\\\":\\\"goal\\\"}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 100\\\":\\\"rgb(0,104,55)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"98a8d0b0-6f2a-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] pie chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] pie chart\\\",\\\"type\\\":\\\"pie\\\",\\\"params\\\":{\\\"type\\\":\\\"pie\\\",\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"isDonut\\\":true,\\\"labels\\\":{\\\"show\\\":false,\\\"values\\\":true,\\\"last_level\\\":true,\\\"truncate\\\":100}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.method\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":100,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"fe7b9a30-6f20-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] heat map\",\n      \"visState\": \"{\\\"aggs\\\":[{\\\"enabled\\\":true,\\\"id\\\":\\\"1\\\",\\\"params\\\":{},\\\"schema\\\":\\\"metric\\\",\\\"type\\\":\\\"count\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"2\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"요일\\\",\\\"field\\\":\\\"요일_한글\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"order\\\":\\\"asc\\\",\\\"orderAgg\\\":{\\\"enabled\\\":true,\\\"id\\\":\\\"2-orderAgg\\\",\\\"params\\\":{\\\"field\\\":\\\"요일_숫자\\\"},\\\"schema\\\":{\\\"aggFilter\\\":[\\\"!top_hits\\\",\\\"!percentiles\\\",\\\"!median\\\",\\\"!std_dev\\\",\\\"!derivative\\\",\\\"!moving_avg\\\",\\\"!serial_diff\\\",\\\"!cumulative_sum\\\",\\\"!avg_bucket\\\",\\\"!max_bucket\\\",\\\"!min_bucket\\\",\\\"!sum_bucket\\\"],\\\"deprecate\\\":false,\\\"editor\\\":false,\\\"group\\\":\\\"none\\\",\\\"hideCustomLabel\\\":true,\\\"max\\\":null,\\\"min\\\":0,\\\"name\\\":\\\"orderAgg\\\",\\\"params\\\":[],\\\"title\\\":\\\"Order Agg\\\"},\\\"type\\\":\\\"avg\\\"},\\\"orderBy\\\":\\\"custom\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"size\\\":7},\\\"schema\\\":\\\"segment\\\",\\\"type\\\":\\\"terms\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"3\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"시간대\\\",\\\"field\\\":\\\"시간대\\\",\\\"ranges\\\":[{\\\"from\\\":18,\\\"to\\\":23},{\\\"from\\\":14,\\\"to\\\":18},{\\\"from\\\":10,\\\"to\\\":14},{\\\"from\\\":5,\\\"to\\\":10},{\\\"from\\\":0,\\\"to\\\":5}]},\\\"schema\\\":\\\"group\\\",\\\"type\\\":\\\"range\\\"}],\\\"params\\\":{\\\"addLegend\\\":true,\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"colorsNumber\\\":6,\\\"colorsRange\\\":[],\\\"enableHover\\\":false,\\\"invertColors\\\":false,\\\"legendPosition\\\":\\\"right\\\",\\\"percentageMode\\\":false,\\\"setColorRange\\\":false,\\\"times\\\":[],\\\"type\\\":\\\"heatmap\\\",\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"labels\\\":{\\\"color\\\":\\\"#555\\\",\\\"rotate\\\":0,\\\"show\\\":false},\\\"scale\\\":{\\\"defaultYExtents\\\":false,\\\"type\\\":\\\"linear\\\"},\\\"show\\\":false,\\\"type\\\":\\\"value\\\"}]},\\\"title\\\":\\\"[nginx] heat map\\\",\\\"type\\\":\\\"heatmap\\\"}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 584\\\":\\\"rgb(255,255,204)\\\",\\\"584 - 1,167\\\":\\\"rgb(255,230,146)\\\",\\\"1,167 - 1,750\\\":\\\"rgb(254,191,90)\\\",\\\"1,750 - 2,334\\\":\\\"rgb(253,141,60)\\\",\\\"2,334 - 2,917\\\":\\\"rgb(244,61,37)\\\",\\\"2,917 - 3,500\\\":\\\"rgb(202,8,35)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"4b2430e0-6f2b-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] horizontal bar\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] horizontal bar\\\",\\\"type\\\":\\\"horizontal_bar\\\",\\\"params\\\":{\\\"type\\\":\\\"histogram\\\",\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":200},\\\"title\\\":{}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":75,\\\"filter\\\":true,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"평균 전송량 (byte)\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"mode\\\":\\\"normal\\\",\\\"data\\\":{\\\"label\\\":\\\"평균 전송량 (byte)\\\",\\\"id\\\":\\\"1\\\"},\\\"valueAxis\\\":\\\"ValueAxis-1\\\",\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"avg\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.body_sent.bytes\\\",\\\"customLabel\\\":\\\"평균 전송량 (byte)\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.user_agent.name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":10,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"agent\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"b23c8a00-6f32-11e8-a0fb-51f0eb991705\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[nginx] Data Table\",\n      \"visState\": \"{\\\"title\\\":\\\"[nginx] Data Table\\\",\\\"type\\\":\\\"table\\\",\\\"params\\\":{\\\"perPage\\\":10,\\\"showMeticsAtAllLevels\\\":false,\\\"showPartialRows\\\":false,\\\"showTotal\\\":false,\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null},\\\"totalFunc\\\":\\\"sum\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"req 개수\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"@timestamp\\\",\\\"interval\\\":\\\"d\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"날짜\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.geoip.city_name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"도시\\\"}},{\\\"id\\\":\\\"5\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"avg\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"nginx.access.body_sent.bytes\\\",\\\"customLabel\\\":\\\"평균 body_sent (bytes)\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"params\\\":{\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null}}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"eb4d54b0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week4_Elasticsearch/object/visualization/shopping-visualization.json",
    "content": "[\n  {\n    \"_id\": \"AWJgoeObzMQVnr-9Mxxc\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"shopping_coordinates\",\n      \"visState\": \"{\\\"title\\\":\\\"shopping_coordinates\\\",\\\"type\\\":\\\"tile_map\\\",\\\"params\\\":{\\\"mapType\\\":\\\"Scaled Circle Markers\\\",\\\"isDesaturated\\\":true,\\\"addTooltip\\\":true,\\\"heatMaxZoom\\\":0,\\\"heatMinOpacity\\\":0.1,\\\"heatRadius\\\":25,\\\"heatBlur\\\":15,\\\"legendPosition\\\":\\\"bottomright\\\",\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"wms\\\":{\\\"enabled\\\":false,\\\"url\\\":\\\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\\\",\\\"options\\\":{\\\"version\\\":\\\"1.3.0\\\",\\\"layers\\\":\\\"0\\\",\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true,\\\"attribution\\\":\\\"Maps provided by USGS\\\",\\\"styles\\\":\\\"\\\"}},\\\"type\\\":\\\"tile_map\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"geohash_grid\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"물건좌표\\\",\\\"autoPrecision\\\":true,\\\"useGeocentroid\\\":true,\\\"precision\\\":2}}],\\\"listeners\\\":{}}\",\n      \"uiStateJSON\": \"{\\\"mapZoom\\\":9,\\\"mapCenter\\\":[36.52619126653696,127.91244506835936]}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJguWqpzMQVnr-9Mxxg\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] metrics\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] metrics\\\",\\\"type\\\":\\\"metric\\\",\\\"params\\\":{\\\"addTooltip\\\":true,\\\"addLegend\\\":false,\\\"type\\\":\\\"metric\\\",\\\"metric\\\":{\\\"percentageMode\\\":false,\\\"colorSchema\\\":\\\"Green to Red\\\",\\\"useRange\\\":false,\\\"colorsRange\\\":[{\\\"from\\\":0,\\\"to\\\":100}],\\\"invertColors\\\":false,\\\"labels\\\":{\\\"show\\\":true,\\\"color\\\":\\\"black\\\"},\\\"style\\\":{\\\"fontSize\\\":60,\\\"bgColor\\\":false,\\\"labelColor\\\":false,\\\"subText\\\":\\\"\\\"},\\\"metricColorMode\\\":\\\"None\\\"}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"전체 데이터\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 100\\\":\\\"rgb(0,104,55)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJdii5xzMQVnr-9MxxQ\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Area Chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Area Chart\\\",\\\"type\\\":\\\"area\\\",\\\"params\\\":{\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"주문시간\\\"}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"주문개수\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":\\\"true\\\",\\\"type\\\":\\\"area\\\",\\\"mode\\\":\\\"stacked\\\",\\\"data\\\":{\\\"label\\\":\\\"주문개수\\\",\\\"id\\\":\\\"1\\\"},\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true,\\\"interpolate\\\":\\\"linear\\\",\\\"valueAxis\\\":\\\"ValueAxis-1\\\"}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false,\\\"type\\\":\\\"area\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"sum\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"상품개수\\\",\\\"customLabel\\\":\\\"주문개수\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"주문시간\\\",\\\"interval\\\":\\\"auto\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"주문시간\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"group\\\",\\\"params\\\":{\\\"field\\\":\\\"고객성별\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJg0q4CzMQVnr-9Mxxk\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Line Chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Line Chart\\\",\\\"type\\\":\\\"line\\\",\\\"params\\\":{\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"주문시간\\\"}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"배송소요시간\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":\\\"true\\\",\\\"type\\\":\\\"line\\\",\\\"mode\\\":\\\"normal\\\",\\\"data\\\":{\\\"label\\\":\\\"배송소요시간\\\",\\\"id\\\":\\\"1\\\"},\\\"valueAxis\\\":\\\"ValueAxis-1\\\",\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false,\\\"type\\\":\\\"line\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"percentiles\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"배송소요시간\\\",\\\"percents\\\":[1,50,99],\\\"customLabel\\\":\\\"배송소요시간\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"주문시간\\\",\\\"interval\\\":\\\"auto\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"주문시간\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"spy\\\":{\\\"mode\\\":{\\\"name\\\":null,\\\"fill\\\":false}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJg1XpWzMQVnr-9Mxxl\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Horizontal Bar\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Horizontal Bar\\\",\\\"type\\\":\\\"histogram\\\",\\\"params\\\":{\\\"grid\\\":{\\\"categoryLines\\\":false,\\\"style\\\":{\\\"color\\\":\\\"#eee\\\"}},\\\"categoryAxes\\\":[{\\\"id\\\":\\\"CategoryAxis-1\\\",\\\"type\\\":\\\"category\\\",\\\"position\\\":\\\"left\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":0,\\\"filter\\\":false,\\\"truncate\\\":200},\\\"title\\\":{\\\"text\\\":\\\"판매자평점\\\"}}],\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"name\\\":\\\"LeftAxis-1\\\",\\\"type\\\":\\\"value\\\",\\\"position\\\":\\\"bottom\\\",\\\"show\\\":true,\\\"style\\\":{},\\\"scale\\\":{\\\"type\\\":\\\"linear\\\",\\\"mode\\\":\\\"normal\\\"},\\\"labels\\\":{\\\"show\\\":true,\\\"rotate\\\":75,\\\"filter\\\":true,\\\"truncate\\\":100},\\\"title\\\":{\\\"text\\\":\\\"매출\\\"}}],\\\"seriesParams\\\":[{\\\"show\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"mode\\\":\\\"normal\\\",\\\"data\\\":{\\\"label\\\":\\\"매출\\\",\\\"id\\\":\\\"1\\\"},\\\"valueAxis\\\":\\\"ValueAxis-1\\\",\\\"drawLinesBetweenPoints\\\":true,\\\"showCircles\\\":true}],\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"times\\\":[],\\\"addTimeMarker\\\":false,\\\"type\\\":\\\"horizontal_bar\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"sum\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"상품가격\\\",\\\"customLabel\\\":\\\"매출\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"판매자평점\\\",\\\"interval\\\":1,\\\"extended_bounds\\\":{}}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"legendOpen\\\":false}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJg1wbTzMQVnr-9Mxxm\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Data Table\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Data Table\\\",\\\"type\\\":\\\"table\\\",\\\"params\\\":{\\\"perPage\\\":30,\\\"showPartialRows\\\":false,\\\"showMeticsAtAllLevels\\\":false,\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null},\\\"showTotal\\\":false,\\\"totalFunc\\\":\\\"sum\\\",\\\"type\\\":\\\"table\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"sum\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"상품가격\\\",\\\"customLabel\\\":\\\"매출\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"date_histogram\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"주문시간\\\",\\\"interval\\\":\\\"d\\\",\\\"customInterval\\\":\\\"2h\\\",\\\"min_doc_count\\\":1,\\\"extended_bounds\\\":{},\\\"customLabel\\\":\\\"날짜\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"구매사이트\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"사이트\\\"}},{\\\"id\\\":\\\"4\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"결제카드\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"카드\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"params\\\":{\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null}}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJgycpEzMQVnr-9Mxxi\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Pie Chart\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Pie Chart\\\",\\\"type\\\":\\\"pie\\\",\\\"params\\\":{\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"isDonut\\\":false,\\\"type\\\":\\\"pie\\\",\\\"labels\\\":{\\\"show\\\":false,\\\"values\\\":true,\\\"last_level\\\":true,\\\"truncate\\\":100}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"top_hits\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"판매자평점\\\",\\\"aggregate\\\":\\\"average\\\",\\\"size\\\":5,\\\"sortField\\\":\\\"판매자평점\\\",\\\"sortOrder\\\":\\\"desc\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"schema\\\":\\\"split\\\",\\\"params\\\":{\\\"field\\\":\\\"배송소요시간\\\",\\\"interval\\\":24,\\\"extended_bounds\\\":{},\\\"row\\\":false}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"고객주소_시도\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":3,\\\"orderAgg\\\":{\\\"id\\\":\\\"2-orderAgg\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"avg\\\",\\\"schema\\\":\\\"orderAgg\\\",\\\"params\\\":{\\\"field\\\":\\\"배송소요시간\\\"}},\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"custom\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"colors\\\":{\\\"인천광역시\\\":\\\"#962D82\\\"},\\\"legendOpen\\\":false}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AV_Fp61Dju5h0m3erKmP\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"shopping_timelion_2\",\n      \"visState\": \"{\\\"title\\\":\\\"shopping_timelion_2\\\",\\\"type\\\":\\\"timelion\\\",\\\"params\\\":{\\\"expression\\\":\\\".es(index=shopping, timefield=주문시간, metric=sum:상품가격).label('올해 매출').range(0, 1),  .es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y).label('작년 매출').color(#00b8ff).range(0, 1),  .es(index=shopping, timefield=주문시간, metric=sum:상품가격).subtract(.es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y)).if(gte, 50000, .es(index=shopping, timefield=주문시간, metric=sum:상품가격), null).lines(fill=5, width=2).color(#fd8282).label('전년 대비 50,000 이상 상승 구간').yaxis(label=매출).range(0, 1)\\\",\\\"interval\\\":\\\"1d\\\",\\\"type\\\":\\\"timelion\\\"},\\\"aggs\\\":[],\\\"listeners\\\":{}}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJgEGqCzMQVnr-9MxxW\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Region Map\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Region Map\\\",\\\"type\\\":\\\"region_map\\\",\\\"params\\\":{\\\"legendPosition\\\":\\\"bottomright\\\",\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"selectedLayer\\\":{\\\"name\\\":\\\"Korea City\\\",\\\"url\\\":\\\"https://s3.ap-northeast-2.amazonaws.com/higee-map/korea.geojson\\\",\\\"fields\\\":[{\\\"name\\\":\\\"name\\\",\\\"description\\\":\\\"City name\\\"}],\\\"format\\\":{\\\"type\\\":\\\"geojson\\\"},\\\"meta\\\":{\\\"feature_collection_path\\\":\\\"data\\\"},\\\"layerId\\\":\\\"self_hosted.Korea City\\\"},\\\"selectedJoinField\\\":{\\\"name\\\":\\\"name\\\",\\\"description\\\":\\\"City name\\\"},\\\"type\\\":\\\"region_map\\\",\\\"isDisplayWarning\\\":true,\\\"wms\\\":{\\\"enabled\\\":false,\\\"options\\\":{\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true},\\\"baseLayersAreLoaded\\\":{},\\\"tmsLayers\\\":[{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}],\\\"selectedTmsLayer\\\":{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}},\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"outlineWeight\\\":1,\\\"showAllShapes\\\":true},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"고객주소_시도\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":20,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"mapZoom\\\":7,\\\"mapCenter\\\":[36.071302299422406,128.21594238281253],\\\"spy\\\":null}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJg3QUCzMQVnr-9Mxxo\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Goal\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Goal\\\",\\\"type\\\":\\\"goal\\\",\\\"params\\\":{\\\"addTooltip\\\":true,\\\"addLegend\\\":false,\\\"type\\\":\\\"gauge\\\",\\\"gauge\\\":{\\\"verticalSplit\\\":false,\\\"autoExtend\\\":false,\\\"percentageMode\\\":false,\\\"gaugeType\\\":\\\"Arc\\\",\\\"gaugeStyle\\\":\\\"Full\\\",\\\"backStyle\\\":\\\"Full\\\",\\\"orientation\\\":\\\"vertical\\\",\\\"useRanges\\\":false,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"gaugeColorMode\\\":\\\"None\\\",\\\"colorsRange\\\":[{\\\"from\\\":0,\\\"to\\\":1},{\\\"from\\\":1,\\\"to\\\":2},{\\\"from\\\":2,\\\"to\\\":3},{\\\"from\\\":3,\\\"to\\\":4},{\\\"from\\\":4,\\\"to\\\":5}],\\\"invertColors\\\":true,\\\"labels\\\":{\\\"show\\\":true,\\\"color\\\":\\\"black\\\"},\\\"scale\\\":{\\\"show\\\":false,\\\"labels\\\":false,\\\"color\\\":\\\"#333\\\",\\\"width\\\":2},\\\"type\\\":\\\"meter\\\",\\\"style\\\":{\\\"bgFill\\\":\\\"#000\\\",\\\"bgColor\\\":false,\\\"labelColor\\\":false,\\\"subText\\\":\\\"\\\",\\\"fontSize\\\":60}},\\\"isDisplayWarning\\\":false},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"top_hits\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"판매자평점\\\",\\\"aggregate\\\":\\\"average\\\",\\\"size\\\":10,\\\"sortField\\\":\\\"상품가격\\\",\\\"sortOrder\\\":\\\"desc\\\",\\\"customLabel\\\":\\\"연령별 VIP 평점\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"group\\\",\\\"params\\\":{\\\"field\\\":\\\"연령대\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":3,\\\"order\\\":\\\"asc\\\",\\\"orderBy\\\":\\\"_term\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 1\\\":\\\"rgb(128,0,38)\\\",\\\"1 - 2\\\":\\\"rgb(227,27,28)\\\",\\\"2 - 3\\\":\\\"rgb(253,141,60)\\\",\\\"3 - 4\\\":\\\"rgb(254,217,118)\\\",\\\"4 - 5\\\":\\\"rgb(255,255,204)\\\"}},\\\"spy\\\":{\\\"mode\\\":{\\\"name\\\":null,\\\"fill\\\":false}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJgsNh9zMQVnr-9Mxxe\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Tag Cloud\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Tag Cloud\\\",\\\"type\\\":\\\"tagcloud\\\",\\\"params\\\":{\\\"scale\\\":\\\"linear\\\",\\\"orientation\\\":\\\"single\\\",\\\"minFontSize\\\":18,\\\"maxFontSize\\\":72,\\\"type\\\":\\\"tagcloud\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"구매사이트\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":10,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWGI8fjSPloSIAlpOE6c\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Timelion\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] Timelion\\\",\\\"type\\\":\\\"timelion\\\",\\\"params\\\":{\\\"expression\\\":\\\".es(index=shopping, timefield=주문시간, metric=sum:상품가격).label('올해 매출'),  .es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y).label('작년 매출').color(#00b8ff),  .es(index=shopping, timefield=주문시간, metric=sum:상품가격).subtract(.es(index=shopping, timefield=주문시간, metric=sum:상품가격, offset=-1y)).if(gte, 50000, .es(index=shopping, timefield=주문시간, metric=sum:상품가격), null).lines(fill=5, width=2).color(#fd8282).label('전년 대비 50,000 이상 상승 구간').yaxis(label=매출).legend(position=ne)\\\",\\\"interval\\\":\\\"1d\\\",\\\"type\\\":\\\"timelion\\\"},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"AWJglBU6zMQVnr-9Mxxa\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] markdown\",\n      \"visState\": \"{\\\"title\\\":\\\"[shopping] markdown\\\",\\\"type\\\":\\\"markdown\\\",\\\"params\\\":{\\\"type\\\":\\\"markdown\\\",\\\"markdown\\\":\\\"### Elastic Stack을 활용한 Data Dashboard 만들기 CAMP\\\\n---\\\\n* [강의자료](https://github.com/higee/elastic)\\\\n* [강의질문](https://www.facebook.com/groups/FCElasticStack/)\\\\n* [Markdown문법](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)\\\",\\\"fontSize\\\":12},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"query\\\":{\\\"match_all\\\":{}},\\\"language\\\":\\\"lucene\\\"},\\\"filter\\\":[]}\"\n      }\n    }\n  },\n  {\n    \"_id\": \"147d34a0-82c8-11e8-8161-3b4280559eb3\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"[shopping] Heat Map\",\n      \"visState\": \"{\\\"aggs\\\":[{\\\"enabled\\\":true,\\\"id\\\":\\\"1\\\",\\\"params\\\":{},\\\"schema\\\":\\\"metric\\\",\\\"type\\\":\\\"count\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"2\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"요일\\\",\\\"field\\\":\\\"주문시간_요일\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"size\\\":7},\\\"schema\\\":\\\"segment\\\",\\\"type\\\":\\\"terms\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"3\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"시간\\\",\\\"field\\\":\\\"주문시간_시간대\\\",\\\"ranges\\\":[{\\\"from\\\":0,\\\"to\\\":7},{\\\"from\\\":7,\\\"to\\\":11},{\\\"from\\\":11,\\\"to\\\":15},{\\\"from\\\":15,\\\"to\\\":19},{\\\"from\\\":19,\\\"to\\\":23}]},\\\"schema\\\":\\\"group\\\",\\\"type\\\":\\\"range\\\"}],\\\"params\\\":{\\\"addLegend\\\":true,\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"colorsNumber\\\":4,\\\"colorsRange\\\":[],\\\"enableHover\\\":false,\\\"invertColors\\\":false,\\\"legendPosition\\\":\\\"right\\\",\\\"percentageMode\\\":false,\\\"setColorRange\\\":false,\\\"times\\\":[],\\\"type\\\":\\\"heatmap\\\",\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"labels\\\":{\\\"color\\\":\\\"#555\\\",\\\"rotate\\\":0,\\\"show\\\":false},\\\"scale\\\":{\\\"defaultYExtents\\\":false,\\\"type\\\":\\\"linear\\\"},\\\"show\\\":false,\\\"type\\\":\\\"value\\\"}]},\\\"title\\\":\\\"[shopping] Heat Map\\\",\\\"type\\\":\\\"heatmap\\\"}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 55\\\":\\\"rgb(255,255,204)\\\",\\\"55 - 110\\\":\\\"rgb(254,217,118)\\\",\\\"110 - 165\\\":\\\"rgb(253,141,60)\\\",\\\"165 - 220\\\":\\\"rgb(227,27,28)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"f3ef69f0-6fa9-11e8-8161-3b4280559eb3\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week5_Logstash/code/filter/csv/autodetect-column-names.conf",
    "content": "input {                                                                                    \n  file {                                                                \n    path => \"/usr/share/logstash/data/titanic-header.csv\"                                                                               \n    start_position => \"beginning\"                                       \n    sincedb_path => \"/dev/null\"                                         \n  }                                                                     \n}                                                                       \n\nfilter {                                                                 \n  csv {                                                                 \n    separator => \",\"                                                    \n    autodetect_column_names => true\n  }                                                                     \n}                                                                       \n\noutput {                                                                 \n  stdout {                                                                 \n  }                                                                              \n}                                                                              \n  \n"
  },
  {
    "path": "Week5_Logstash/code/filter/csv/convert.conf",
    "content": "input {                                                                                    \n  file {                                                                        \n    path => \"/usr/share/logstash/data/titanic-header.csv\"                                                                               \n    start_position => \"beginning\"                                               \n    sincedb_path => \"/dev/null\"                                                 \n  }                                                                             \n}                                                                               \n\nfilter {                                                                        \n  csv {                                                                         \n    separator => \",\"                                                            \n    autodetect_column_names => true                                             \n    convert => {                                                                \n      \"Pclass\" => \"integer\"                                                        \n      \"Index\" => \"integer\"                                                        \n      \"Survival\" => \"integer\"                                                    \n      \"Fare\" => \"float\"                                                            \n      \"@timestamp\" => \"date\"\n    }                                                                            \n  }                                                                             \n}                                                                               \n\noutput {                                                                         \n  stdout {                                                                         \n  }                                                                              \n}                                                                               \n"
  },
  {
    "path": "Week5_Logstash/code/filter/csv/separator.conf",
    "content": "input {                                                                                    \n  file {                                                                \n    path => \"/usr/share/logstash/data/titanic-header.csv\"                                                                               \n    start_position => \"beginning\"                                       \n    sincedb_path => \"/dev/null\"                                         \n  }                                                                     \n}                                                                       \n\nfilter {                                                                 \n  csv {                                                                 \n    separator => \",\"                                                    \n  }                                                                     \n}                                                                       \n\noutput {                                                                 \n  stdout {                                                                 \n  }                                                                              \n}                                                                              \n"
  },
  {
    "path": "Week5_Logstash/code/filter/date/date.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/date.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => {\"message\" => '%{TIMESTAMP_ISO8601:time} %{WORD:name}'}\n    remove_field => [\"path\", \"@timestamp\", \"@version\", \"host\", \"message\"]\n  }\n  date {\n    match => [\"time\", \"YYYY-MM-dd'T'HH:mm:ss\"]\n    timezone => \"Asia/Seoul\"\n    target => \"time\"\n  }\n}\n\noutput {\n  elasticsearch {\n    hosts => [\"elasticsearch:9200\"]\n    index => \"exercise5\"\n    document_type => \"exercise5\"\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/date/default.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/date.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => { \"message\" => '%{TIMESTAMP_ISO8601:time} %{WORD:name}'}\n    remove_field => [\"path\", \"@timestamp\", \"@version\", \"host\", \"message\"]\n  }\n}\n\noutput {\n  elasticsearch {\n    hosts => [\"elasticsearch:9200\"]\n    index => \"exercise4\"\n    document_type => \"exercise4\"\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/drop/drop1.conf",
    "content": "input {                                                                                    \n  stdin {}                                                                               \n}                                                                         \n\nfilter {                                                                        \n  if [message] == \"hello\" {                                                                            \n    drop {}                   \n  }                           \n}                                                                            \n    \noutput {                                                                            \n  stdout {                    \n  }                            \n}                                                                            \n"
  },
  {
    "path": "Week5_Logstash/code/filter/drop/drop2.conf",
    "content": "input {                                                                                                    \n  file {                                                                                                   \n    path => \"/usr/share/logstash/data/access.log\"                                                            \n    start_position => \"beginning\"                                                                          \n    sincedb_path => \"/dev/null\"                                                                           \n }                                                                                                         \n}                                                                                                         \n                              \nfilter {                                                                                                  \n  grok {                                                                                                  \n    match => {                                                                                            \n      \"message\" =>                                                                                          \n       '%{TIMESTAMP_ISO8601:time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'\n    }                                                                                                     \n  }                                                                                                       \n  if [status_code] == \"200\" {                                                                                          \n    drop {}                                                                                               \n  }                                                                                                       \n}                                                                                                         \n\noutput {                                                                                                  \n  stdout {                                                                                                \n  }                                                                                                       \n}                                                                                                          \n"
  },
  {
    "path": "Week5_Logstash/code/filter/elasticsearch/example1.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/access2.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => {\n      \"message\" =>\n       '%{TIMESTAMP_ISO8601:current_time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'\n    }\n  }\n  elasticsearch {\n    hosts => [\"elasticsearch.higee.co\"]\n    index => \"nginx-*\"\n    query => \"nginx.access.geoip.ip:%{[clientip]}\"\n    sort => \"@timestamp:desc\"\n    fields => {\"@timestamp\" => \"previous_time\"}\n    remove_field => [\"status_code\", \"path\", \"@timestamp\", \"req\", \"res_time\", \"@version\", \"host\"]\n  }\n}\n\noutput {\n  stdout {\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/elasticsearch/example1_.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/access2.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => {\n      \"message\" =>\n       '%{TIMESTAMP_ISO8601:time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'\n    }\n  }\n  elasticsearch {\n    hosts => [\"elasticsearch.higee.co\"]\n    index => \"nginx-*\"\n    query => \"nginx.access.geoip.ip:%{[clientip]}\"\n    sort => \"@timestamp:desc\"\n    fields => {\"nginx\" => \"nginx_\"}\n  }\n  mutate {\n    add_field => { \"byte\" => \"%{[nginx_][access][body_sent][bytes]}\"}\n    remove_field => [\"[nginx_]\"]\n  }\n}\noutput {\n  stdout {\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/elasticsearch/example2.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/access2.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => {\n      \"message\" =>\n        '%{TIMESTAMP_ISO8601:current_time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'\n    }\n  }\n  elasticsearch {\n    hosts => [\"elasticsearch.higee.co\"]\n    index => \"nginx-*\"\n    query => \"nginx.access.geoip.ip:%{[clientip]}\"\n    sort => \"@timestamp:desc\"\n    fields => {\"@timestamp\" => \"previous_time\"}\n  }\n  if [previous_time] {\n    date {\n      match => [\"current_time\", \"YYYY-MM-dd'T'HH:mm:ss.SSSZ\"]\n      target => \"current_time\"\n    }\n    date {\n      match => [\"previous_time\", \"YYYY-MM-dd'T'HH:mm:ss.SSSZ\"]\n      target => \"previous_time\"\n    }\n    ruby {\n      code => \"event.set('access_interval', ((event.get('current_time') - event.get('previous_time'))/3600).round(2))\"\n    }\n  }\n  mutate {\n    remove_field => [\"status_code\", \"path\", \"@timestamp\", \"req\", \"res_time\", \"@version\", \"host\"]\n  }\n}\n\noutput {\n  stdout {\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/elasticsearch/example3.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/access2.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => {\n      \"message\" =>\n       '%{TIMESTAMP_ISO8601:current_time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'\n    }\n  }\n  elasticsearch {\n    hosts => [\"elasticsearch.higee.co\"]\n    index => \"nginx-*\"\n    query_template => \"/usr/share/logstash/code/filter/elasticsearch/example3.json\"\n    fields => {\"@timestamp\" => \"previous_time\"}\n    remove_field => [\"status_code\", \"path\", \"@timestamp\", \"req\", \"res_time\", \"@version\", \"host\"]\n  }\n}\n\noutput {\n  stdout {\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/elasticsearch/example3.json",
    "content": "{\n  \"size\": 1,\n  \"sort\" : [ { \"@timestamp\" : \"desc\" } ],\n  \"_source\" : [\"@timestamp\"],\n  \"query\": {\n    \"term\": {\n      \"nginx.access.geoip.ip\" : \"%{[clientip]}\"\n    }\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/elasticsearch/example4.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/access2.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => {\n      \"message\" =>\n       '%{TIMESTAMP_ISO8601:current_time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'\n    }\n  }\n  elasticsearch {\n    hosts => [\"elasticsearch.higee.co\"]\n    index => \"nginx-*\"\n    query_template => \"/usr/share/logstash/code/filter/elasticsearch/example4.json\"\n    fields => {\"@timestamp\" => \"previous_time\"}\n    remove_field => [\"status_code\", \"path\", \"@timestamp\", \"req\", \"res_time\", \"@version\", \"host\", \"current_time\"]\n    aggregation_fields => {\n      \"this_is_avg\" => \"elasticsearch_aggregation\"\n    }\n  }\n  if ![elasticsearch_aggregation][value] {\n    mutate {\n      remove_field => [\"elasticsearch_aggregation\"]\n    }\n  }\n  else {\n    ruby {\n      code => \"event.set('average_byte', event.get('[elasticsearch_aggregation][value]').round(0))\"\n      remove_field => [\"elasticsearch_aggregation\"]\n    }\n  }\n}\n\noutput {\n  stdout {\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/elasticsearch/example4.json",
    "content": "{\n  \"size\": 0,\n  \"sort\" : [ { \"@timestamp\" : \"desc\" } ],\n  \"query\": {\n    \"term\": {\n      \"nginx.access.geoip.ip\" : \"%{[clientip]}\"\n    }\n  },\n  \"aggs\": {\n    \"this_is_avg\": {\n      \"avg\": {\n        \"field\": \"nginx.access.body_sent.bytes\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/grok/access.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/access.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => {\n      \"message\" =>\n       '%{TIMESTAMP_ISO8601:time} %{IPORHOST:clientip} %{NUMBER:res_time} %{NUMBER:status_code} %{QS:req}'\n    }\n  }\n}\n\noutput {\n  stdout {\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/grok/apache.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/apache.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => { \"message\" => \"%{COMBINEDAPACHELOG}\" }\n  }\n}\n\noutput {\n  stdout {\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/mutate/add_field.conf",
    "content": "input {                                                                                    \n  file {                                                                        \n    path => \"/usr/share/logstash/data/ip-address.log\"                                                                               \n    start_position => \"beginning\"                                               \n    sincedb_path => \"/dev/null\"                                                 \n  }                                                                             \n}                                                                               \n\nfilter {                                                                        \n  mutate {                                                                      \n    split => {                                                                  \n      \"message\" => \":\"                                                          \n    }                                                                           \n    add_field => {                                                              \n      \"ip\" => \"%{message[0]}\"                                                   \n      \"port\" => \"%{message[1]}\"                                                 \n    }                                                                           \n  }                                                                               \n}                                                                               \n\noutput {                                                                         \n  stdout {                                                                         \n  }                                                                              \n}                                                                               \n"
  },
  {
    "path": "Week5_Logstash/code/filter/mutate/remove_field.conf",
    "content": "input {                                                                                    \n  file {                                                                        \n    path => \"/usr/share/logstash/data/ip-address.log\"                                                                               \n    start_position => \"beginning\"                                               \n    sincedb_path => \"/dev/null\"                                                 \n  }                                                                             \n}                                                                               \n\nfilter {                                                                        \n  mutate {                                                                      \n    split => {                                                                  \n      \"message\" => \":\"                                                          \n    }                                                                           \n    add_field => {                                                              \n      \"ip\" => \"%{message[0]}\"                                                   \n      \"port\" => \"%{message[1]}\"                                                 \n    }                                                                           \n    remove_field => [\"path\", \"@timestamp\", \"@version\", \"host\", \"message\"]       \n  }                                                                                 \n}                                                                               \n\noutput {                                                                         \n  stdout {                                                                         \n  }                                                                              \n}                                                                               \n"
  },
  {
    "path": "Week5_Logstash/code/filter/mutate/split.conf",
    "content": "input {                                                                                    \n  file {                                                                        \n    path => \"/usr/share/logstash/data/ip-address.log\"                                                                               \n    start_position => \"beginning\"                                               \n    sincedb_path => \"/dev/null\"                                                 \n  }                                                                             \n}                                                                               \n\nfilter {                                                                        \n  mutate {                                                                      \n    split => {                                                                  \n      \"message\" => \":\"                                                            \n    }                                                                           \n  }                                                                               \n}                                                                                    \n\noutput {                                                                         \n  stdout {                                                                         \n  }                                                                              \n}                                                                               \n"
  },
  {
    "path": "Week5_Logstash/code/filter/ruby/example1.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/date.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  grok {\n    match => {\"message\" => '%{TIMESTAMP_ISO8601:time} %{WORD:name}'}\n    remove_field => [\"path\", \"@timestamp\", \"@version\", \"host\", \"message\"]\n  }\n  date {\n    match => [\"time\", \"YYYY-MM-dd'T'HH:mm:ss\"]\n    timezone => \"Asia/Seoul\"\n    target => \"time2\"\n    remove_field => [\"time\"]\n  }\n  ruby {\n    code =>\n      \"event.set('_time2', event.get('time2').time.localtime('+09:00').strftime('%Y-%m-%dT%H:%M:%S'))\"\n  }\n}\n\noutput {\n  stdout {}\n}\n"
  },
  {
    "path": "Week5_Logstash/code/filter/ruby/example2.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/access.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n  }\n}\n\nfilter {\n  ruby {\n    code => \"event.set('status code', (event.get('message').split(' ')[3]).to_i)\"\n    remove_field => [\"path\", \"@version\", \"host\", \"@timestamp\"]\n  }\n}\n\noutput {\n  stdout {}\n}\n"
  },
  {
    "path": "Week5_Logstash/code/input/elasticsearch/elasticsearch.conf",
    "content": "input {                                                                                    \n  elasticsearch {                                \n    hosts => [\"52.78.134.20:9200\"]             \n    index => \"exercise1\"                             \n    query => '{                                  \n      \"query\" : {                                \n        \"match_all\" : {}                         \n      }                                          \n    }'                                           \n  }                                                \n}                                                \n                          \noutput {                                                                                       \n  stdout {                                                                                     \n  }                                                                                       \n}                                                                                          \n"
  },
  {
    "path": "Week5_Logstash/code/input/file/file-sincedb-path.conf",
    "content": "input {                                           \n  file {                                          \n    path => \"/usr/share/logstash/data/titanic.csv\"\n    start_position => \"beginning\"                 \n    sincedb_path => \"/dev/null\"                   \n  }                                               \n}                                                 \n\noutput {                                          \n  stdout {                                        \n    codec => rubydebug                            \n  }                                               \n}                                                  \n"
  },
  {
    "path": "Week5_Logstash/code/input/file/file-start-position.conf",
    "content": "input {                                            \n  file {                                           \n    path => \"/usr/share/logstash/data/titanic2.csv\"\n    start_position => \"beginning\"                  \n  }                                                \n}                                                  \n\noutput {                                           \n  stdout {                                         \n  }                                                \n}                                                   \n"
  },
  {
    "path": "Week5_Logstash/code/input/file/file.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data/titanic.csv\"\n  }\n}\n\noutput {\n  stdout {\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/input/file/nginx.conf",
    "content": "input {\n  file {\n    path => \"/usr/share/logstash/data2/access.log\"\n    start_position => \"beginning\"\n    sincedb_path => \"/dev/null\"\n    type => \"access\"\n  }\n}\n\nfilter {\n  if [type] == \"access\" {\n    grok {\n       match => { \"message\" => [\"%{IPORHOST:[nginx][access][remote_ip]} - %{DATA:[nginx][access][user_name]} \\[%{HTTPDATE:[nginx][access][time]}\\] \\\"%{WORD:[nginx][access][method]} %{DATA:[nginx][access][url]} HTTP/%{NUMBER:[nginx][access][http_version]}\\\" %{NUMBER:[nginx][access][response_code]} %{NUMBER:[nginx][access][body_sent][bytes]} \\\"%{DATA:[nginx][access][referrer]}\\\" \\\"%{DATA:[nginx][access][agent]}\\\"\"] }\n        remove_field => \"message\"\n    }\n    date {\n      match => [ \"[nginx][access][time]\", \"dd/MMM/YYYY:H:m:s Z\" ]\n      remove_field => \"[nginx][access][time]\"\n    }\n    useragent {\n      source => \"[nginx][access][agent]\"\n      target => \"[nginx][access][user_agent]\"\n      remove_field => \"[nginx][access][agent]\"\n    }\n    geoip {\n      source => \"[nginx][access][remote_ip]\"\n      target => \"[nginx][access][geoip]\"\n    }\n    mutate {\n      remove_field => [\"@version\", \"path\", \"host\", \"[nginx][access][geoip][latitude]\", \"[nginx][access][geoip][longitude]\"]\n      convert => {\"[nginx][access][body_sent][bytes]\" => \"integer\" }\n    }\n  }\n}\n\noutput {\n  elasticsearch {\n    hosts => \"elasticsearch:9200\"\n    index => \"nginx-%{+YYYY.MM.dd}\"\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/input/jdbc/jdbc-schedule.conf",
    "content": "input {                                                                                    \n  jdbc {                                                                                   \n    jdbc_validate_connection => true                                                       \n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"                        \n    jdbc_user => \"fc\"                                                                      \n    jdbc_password => \"fc\"                                                                  \n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"   \n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"                                          \n    statement => \"SELECT * FROM fc\" \n    schedule => \"0 6 * * *\"                                                               \n }                                                                                            \n}                                                                                              \n                                           \noutput {                                                                                       \n  stdout {                                                                                     \n  }                                                                                       \n}                                                                                          \n"
  },
  {
    "path": "Week5_Logstash/code/input/jdbc/jdbc-sql-last-value-1.conf",
    "content": "input {                                                                                    \n  jdbc {                                                                                   \n    jdbc_validate_connection => true                                                       \n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"                        \n    jdbc_user => \"fc\"                                                                      \n    jdbc_password => \"fc\"                                                                  \n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"   \n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"                                          \n    use_column_value => true                                                              \n    tracking_column => id                                                                 \n    last_run_metadata_path => \"/usr/share/logstash/id-under-5.db\"                                         \n    statement => \"                                                                        \n      SELECT *                                                                            \n      FROM fc                                                                             \n      WHERE id < 5                                                                        \n    \"                                                                                     \n }                                                                                            \n}                                                                                              \n                           \noutput {                                                                                       \n  stdout {                                                                                     \n  }                                                                                       \n}                                                                                          \n"
  },
  {
    "path": "Week5_Logstash/code/input/jdbc/jdbc-sql-last-value-2.conf",
    "content": "input {                                                                                    \n  jdbc {                                                                                   \n    jdbc_validate_connection => true                                                       \n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"                        \n    jdbc_user => \"fc\"                                                                      \n    jdbc_password => \"fc\"                                                                  \n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"   \n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"                                          \n    use_column_value => true                                                              \n    tracking_column => id                                                                 \n    last_run_metadata_path => \"/usr/share/logstash/id-under-5.db\"                                         \n    statement => \"                                                                        \n      SELECT *                                                                            \n      FROM fc                                                                             \n      WHERE id > :sql_last_value                                                          \n    \"                                                                                     \n }                                                                                            \n}                                                                                              \n                           \noutput {                                                                                       \n  stdout {                                                                                     \n  }                                                                                       \n}                                                                                          \n"
  },
  {
    "path": "Week5_Logstash/code/input/jdbc/jdbc.conf",
    "content": "input {                                                                                    \n  jdbc {                                                                                   \n    jdbc_validate_connection => true                                                       \n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"                        \n    jdbc_user => \"fc\"                                                                      \n    jdbc_password => \"fc\"                                                                  \n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"   \n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"                                           \n    statement => \"SELECT * FROM fc\"                                                        \n }                                                                                            \n}                                                                                              \n                           \noutput {                                                                                       \n  stdout {                                                                                     \n  }                                                                                       \n}                                                                                          \n"
  },
  {
    "path": "Week5_Logstash/code/input/stdin/stdin.conf",
    "content": "input {\n  stdin {}\n}\n\noutput {\n  stdout {}\n}\n"
  },
  {
    "path": "Week5_Logstash/code/logstash.md",
    "content": "### week5.pdf 실행 스크립트\n\n---\n#### input\n\n* stdin\n    * p 17 : `$ bin/logstash -f code/input/stdin/stdin.conf`\n\n* file\n    * p 22 : `$ bin/logstash -f code/input/file/file.conf`\n    * p 26 : `$ bin/logstash -f code/input/file/file-start-position.conf`\n    * p 37 : `$ bin/logstash -f code/input/file/file-sincedb-path.conf`\n    \n* jdbc\n    * p 42 : `$ bin/logstash -f code/input/jdbc/jdbc.conf`\n    * p 48 : `$ bin/logstash -f code/input/jdbc/jdbc-sql-last-value-1.conf`\n    * p 51 : `$ bin/logstash -f code/input/jdbc/jdbc-sql-last-value-2.conf`\n\n* elasticsearch\n    * p 59 : `$ bin/logstash -f code/input/elasticsearch/elasticsearch.conf`\n\n---\n#### output\n\n* csv\n    * p 63 : `$ bin/logstash -f code/output/csv/csv.conf`\n\n* elasticsearch\n    * p 67 : `$ bin/logstash -f code/output/elasticsearch/elasticsearch.conf`\n    * p 71 : `$ bin/logstash -f code/output/elasticsearch/elasticsearch-dynamic-field-name-1.conf`\n    * p 75 : `$ bin/logstash -f code/output/elasticsearch/elasticsearch-dynamic-field-name-2.conf`\n    * p 79 : `$ bin/logstash -f code/output/elasticsearch/elasticsearch-stdout.conf`\n\n#### conditional\n\n* if/else if/else\n    * p 83 : `$ bin/logstash -f code/output/conditional.conf`\n\n---\n#### filter\n\n* csv\n    * p 89 : `$ bin/logstash -f code/filter/csv/separator.conf`\n    * p 94 : `$ bin/logstash -f code/filter/csv/autodetect-column-names.conf`\n    * p 98 : `$ bin/logstash -f code/filter/csv/convert.conf`\n\n* mutate\n    * p 106 : `$ bin/logstash -f code/filter/mutate/split.conf`\n    * p 110 : `$ bin/logstash -f code/filter/mutate/add_field.conf`\n    * p 114 : `$ bin/logstash -f code/filter/mutate/remove_field.conf`\n    \n* grok\n    * p 123 : `$ bin/logstash -f code/filter/grok/access.conf`\n    * p 129 : `$ bin/logstash -f code/filter/grok/apache.conf`\n\n* date\n    * p 135 : `$ bin/logstash -f code/filter/date/default.conf`\n    * p 135 : `$ bin/logstash -f code/filter/date/date.conf`\n\n* drop\n    * p 139 : `$ bin/logstash -f code/filter/drop/drop1.conf`\n    * p 143 : `$ bin/logstash -f code/filter/drop/drop2.conf`\n\n* ruby\n    * p 151 : `$ bin/logstash -f code/filter/ruby/example1.conf`\n    * p 155 : `$ bin/logstash -f code/filter/ruby/example2.conf`\n    \n* elasticsearch\n    * p 160 : `$ bin/logstash -f code/filter/elasticsearch/example1.conf`\n    * p 164 : `$ bin/logstash -f code/filter/elasticsearch/example2.conf`\n    * p 169 : `$ bin/logstash -f code/filter/elasticsearch/example3.conf`\n    * p 174 : `$ bin/logstash -f code/filter/elasticsearch/example4.conf`\n"
  },
  {
    "path": "Week5_Logstash/code/output/conditional.conf",
    "content": "input {                                                                                    \n  stdin {}                                                                               \n}                                                                         \n\noutput {                                     \n  if [message] in [\"Seoul\", \"Busan\"] {                                                                            \n    elasticsearch {                          \n      hosts => [\"elasticsearch:9200\"]        \n      index => \"korea\"                       \n    }                                        \n  }                                          \n  else if [message] == \"Osaka\" {              \n    elasticsearch {                            \n      hosts => [\"elasticsearch:9200\"]        \n      index => \"japan\"                       \n    }                                        \n  }                                          \n  else {                                     \n    elasticsearch {                                   \n      hosts => [\"elasticsearch:9200\"]\n      index => \"else\"\n    }                                          \n  }                                          \n}                                             \n"
  },
  {
    "path": "Week5_Logstash/code/output/csv/csv.conf",
    "content": "input {                                                                                    \n  elasticsearch {                                                        \n    hosts => [\"52.78.134.20:9200\"]                                     \n    index => \"exercise1\"                                                     \n    query => '{                                                          \n      \"query\" : {                                                        \n        \"match_all\" : {}                                                 \n      }                                                                  \n    }'                                                                   \n  }                                                                      \n}                                                                        \n                          \noutput {                                                                                       \n  csv {                                                                                     \n    fields => [\"name\", \"location\", \"employment_status\", \"salary\",  \"age\"]           \n    path => \"/usr/share/logstash/data/exercise1.csv\"\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/output/elasticsearch/elasticsearch-dynamic-field-name-1.conf",
    "content": "input {                                                                                    \n  jdbc {                                                                                   \n    jdbc_validate_connection => true                                                       \n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"         \n    jdbc_user => \"fc\"                                                                      \n    jdbc_password => \"fc\"                                                                  \n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"   \n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"                                           \n    statement => \"SELECT * FROM fc\"                                                        \n }                                                                                            \n}                                                                                              \n                           \noutput {                                                                                       \n  elasticsearch {                                                                         \n    hosts => [\"elasticsearch:9200\"]                                                      \n    index => \"exercise1-%{+YYYY.MM.dd}\"                                                 \n    document_type => \"exercise1\"                                                        \n  }                                                                                       \n}                                                           \n"
  },
  {
    "path": "Week5_Logstash/code/output/elasticsearch/elasticsearch-dynamic-field-name-2.conf",
    "content": "input {                                                                                    \n  jdbc {                                                                                   \n    jdbc_validate_connection => true                                                       \n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"                        \n    jdbc_user => \"fc\"                                                                      \n    jdbc_password => \"fc\"                                                                  \n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"   \n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"                                           \n    statement => \"SELECT * FROM fc\"                                                        \n }                                                                                            \n}                                                                                              \n                           \noutput {                                                                                       \n  elasticsearch {                                                                         \n    hosts => [\"elasticsearch:9200\"]                                                      \n    index => \"exercise2-%{+YYYY.MM.dd}\"                                                 \n    document_type => \"exercise2\"                                                        \n    document_id => \"%{@timestamp}-%{name}\"                                                     \n  }                                                                                       \n}                                                                                          \n"
  },
  {
    "path": "Week5_Logstash/code/output/elasticsearch/elasticsearch-stdout.conf",
    "content": "input {                                                                                    \n  jdbc {\n    jdbc_validate_connection => true                          \n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\" \n    jdbc_user => \"fc\"                                                       \n    jdbc_password => \"fc\"\n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"\n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"\n    statement => \"SELECT * FROM fc\"                                          \n }                                                           \n}\n\noutput {                                                                                       \n  elasticsearch {                                                                         \n    hosts => [\"elasticsearch:9200\"]                                                       \n    index => \"exercise3\"                                                                   \n    document_type => \"exercise3\"                                                          \n }                                                                                        \n  stdout {                                                                                \n  }                                                                                          \n}                                                                                            \n"
  },
  {
    "path": "Week5_Logstash/code/output/elasticsearch/elasticsearch.conf",
    "content": "input {                                                                                    \n  jdbc {                                                                                   \n    jdbc_validate_connection => true                                                       \n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"                        \n    jdbc_user => \"fc\"                                                                      \n    jdbc_password => \"fc\"                                                                  \n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"   \n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"                                           \n    statement => \"SELECT * FROM fc\"                                                        \n }                                                                                            \n}                                                                                              \n                           \noutput {                                                                                       \n  elasticsearch {\n    hosts => [\"elasticsearch:9200\"]\n    index => \"exercise1\"\n    document_type => \"exercise1\"\n  }\n}\n"
  },
  {
    "path": "Week5_Logstash/code/output/stdout/stdout.conf",
    "content": "input {\n  stdin {}\n}\n\noutput {\n  stdout {\n    codec => rubydebug\n  }\n}\n"
  },
  {
    "path": "Week6_Review/solution/p44_template",
    "content": "PUT _template/chicago-bike\n{\n  \"index_patterns\": \"chicago-bike*\",\n  \"mappings\": {\n    \"chicago-bike\": {\n      \"properties\": {\n        \"starttime\": {\n          \"type\": \"date\"\n        },\n        \"stoptime\": {\n          \"type\": \"date\"\n        },\n        \"idx\" : {\n          \"type\": \"integer\"\n        },\n        \"year\": {\n          \"type\": \"integer\"\n        },\n        \"month\": {\n          \"type\": \"integer\"\n        },\n        \"week\": {\n          \"type\": \"integer\"\n        },\n        \"day\": {\n          \"type\": \"integer\"\n        },\n        \"hour\": {\n          \"type\": \"integer\"\n        },\n        \"from_station_name\": {\n          \"type\": \"keyword\"\n        },\n        \"from_station_id\": {\n          \"type\": \"keyword\"\n        },\n        \"to_station_name\": {\n          \"type\": \"keyword\"\n        },\n        \"to_station_id\": {\n          \"type\": \"keyword\"\n        },\n        \"start_gps\": {\n          \"type\": \"geo_point\"\n        },\n        \"end_gps\": {\n          \"type\": \"geo_point\"\n        },\n        \"dpcapacity_start\": {\n          \"type\": \"integer\"\n        },\n        \"dpcapacity_end\": {\n          \"type\": \"integer\"\n        },\n        \"temperature\": {\n          \"type\": \"float\"\n        },\n        \"events\": {\n          \"type\": \"keyword\"\n        },\n        \"gender\": {\n          \"type\": \"keyword\"\n        },\n        \"trip_id\": {\n          \"type\": \"keyword\"\n        },\n        \"usertype\": {\n          \"type\": \"keyword\"\n        },\n        \"tags\" : {\n          \"type\": \"keyword\"\n        },\n        \"tripduration\": {\n          \"type\": \"float\"\n        }\n      }\n    }\n  }\n}      \n"
  },
  {
    "path": "Week6_Review/solution/p46_logstash",
    "content": "input {\n  jdbc {\n    jdbc_validate_connection => true\n    jdbc_connection_string => \"jdbc:mysql://52.78.134.20:3306/fc\"\n    jdbc_user => \"fc\"\n    jdbc_password => \"week6\"\n    jdbc_driver_library => \"/usr/share/logstash/driver/mysql-connector-java-5.1.36-bin.jar\"\n    jdbc_driver_class => \"com.mysql.jdbc.Driver\"\n    statement => \"SELECT * FROM chicago_bike limit 3;\"\n    #use_column_value => true\n    #tracking_column => idx\n }\n}\n\nfilter {\n  if [tripduration] <= 3 {\n    drop {}\n  }\n  date {\n    match => [\"starttime\", \"YYYY-MM-dd HH:mm:ss\"]\n    target => \"starttime\"\n    timezone => \"America/Chicago\"\n  }\n  date {\n    match => [\"stoptime\", \"YYYY-MM-dd HH:mm:ss\"]\n    target => \"stoptime\"\n    timezone => \"America/Chicago\"\n  }\n  mutate {\n    add_field => {\n      \"start_gps\" => \"%{latitude_start}, %{longitude_start}\"\n      \"end_gps\" => \"%{latitude_end}, %{longitude_end}\"\n      \"[@metadata][month_string]\" => \"%{month}\"\n    }\n    convert => {\n      \"[@metadata][month_string]\" => \"string\"\n    }\n    remove_field => [\"@timestamp\", \"@version\", \"longitude_start\", \"latitude_start\", \"longitude_end\", \"latitude_end\"]\n  }\n  if [tripduration] >= 24 {\n    mutate {\n      add_tag => [\"VIP\"]\n    }\n  }\n  if [@metadata][month_string] =~ /^\\d{1}$/ {\n    mutate {\n      replace => {\n        \"[@metadata][month_string]\" => \"0%{[@metadata][month_string]}\"\n      }\n    }\n  }\n}\n\noutput {\n  elasticsearch {\n    hosts => [\"elasticsearch:9200\"]\n    index => \"chicago-bike-%{year}.%{[@metadata][month_string]}\"\n    document_type => \"chicago-bike\"\n    document_id => \"%{trip_id}\"\n  }\n}\n"
  },
  {
    "path": "Week6_Review/solution/p53-heatmap.json",
    "content": "[\n  {\n    \"_id\": \"cd2bbaa0-8eb5-11e8-bf09-e9fa0893099a\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"exercise1 - heatmap\",\n      \"visState\": \"{\\\"aggs\\\":[{\\\"enabled\\\":true,\\\"id\\\":\\\"1\\\",\\\"params\\\":{\\\"field\\\":\\\"tripduration\\\",\\\"percents\\\":[50]},\\\"schema\\\":\\\"metric\\\",\\\"type\\\":\\\"median\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"2\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"gender\\\",\\\"field\\\":\\\"events\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"order\\\":\\\"desc\\\",\\\"orderAgg\\\":{\\\"enabled\\\":true,\\\"id\\\":\\\"2-orderAgg\\\",\\\"params\\\":{},\\\"schema\\\":{\\\"aggFilter\\\":[\\\"!top_hits\\\",\\\"!percentiles\\\",\\\"!median\\\",\\\"!std_dev\\\",\\\"!derivative\\\",\\\"!moving_avg\\\",\\\"!serial_diff\\\",\\\"!cumulative_sum\\\",\\\"!avg_bucket\\\",\\\"!max_bucket\\\",\\\"!min_bucket\\\",\\\"!sum_bucket\\\"],\\\"deprecate\\\":false,\\\"editor\\\":false,\\\"group\\\":\\\"none\\\",\\\"hideCustomLabel\\\":true,\\\"max\\\":null,\\\"min\\\":0,\\\"name\\\":\\\"orderAgg\\\",\\\"params\\\":[],\\\"title\\\":\\\"Order Agg\\\"},\\\"type\\\":\\\"count\\\"},\\\"orderBy\\\":\\\"custom\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"size\\\":5},\\\"schema\\\":\\\"segment\\\",\\\"type\\\":\\\"terms\\\"},{\\\"enabled\\\":true,\\\"id\\\":\\\"3\\\",\\\"params\\\":{\\\"extended_bounds\\\":{},\\\"field\\\":\\\"temperature\\\",\\\"interval\\\":20},\\\"schema\\\":\\\"group\\\",\\\"type\\\":\\\"histogram\\\"}],\\\"params\\\":{\\\"addLegend\\\":true,\\\"addTooltip\\\":true,\\\"colorSchema\\\":\\\"Yellow to Red\\\",\\\"colorsNumber\\\":7,\\\"colorsRange\\\":[],\\\"enableHover\\\":true,\\\"invertColors\\\":false,\\\"legendPosition\\\":\\\"right\\\",\\\"percentageMode\\\":false,\\\"setColorRange\\\":false,\\\"times\\\":[],\\\"type\\\":\\\"heatmap\\\",\\\"valueAxes\\\":[{\\\"id\\\":\\\"ValueAxis-1\\\",\\\"labels\\\":{\\\"color\\\":\\\"#555\\\",\\\"rotate\\\":0,\\\"show\\\":false},\\\"scale\\\":{\\\"defaultYExtents\\\":false,\\\"type\\\":\\\"linear\\\"},\\\"show\\\":false,\\\"type\\\":\\\"value\\\"}]},\\\"title\\\":\\\"exercise1 - heatmap\\\",\\\"type\\\":\\\"heatmap\\\"}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 2\\\":\\\"rgb(255,255,204)\\\",\\\"2 - 4\\\":\\\"rgb(255,234,155)\\\",\\\"4 - 6\\\":\\\"rgb(254,206,106)\\\",\\\"6 - 7\\\":\\\"rgb(253,162,69)\\\",\\\"7 - 9\\\":\\\"rgb(252,105,49)\\\",\\\"9 - 11\\\":\\\"rgb(234,41,32)\\\",\\\"11 - 12\\\":\\\"rgb(194,3,37)\\\"}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b2cb05a0-8eb3-11e8-bf09-e9fa0893099a\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"}}\"\n      }\n    }\n  }\n]\n"
  },
  {
    "path": "Week6_Review/solution/p54-coordinate-map.json",
    "content": "[\n  {\n    \"_id\": \"cdfa11b0-8eb6-11e8-bf09-e9fa0893099a\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"exercise2 - coordinate map1\",\n      \"visState\": \"{\\\"title\\\":\\\"exercise2 - coordinate map1\\\",\\\"type\\\":\\\"tile_map\\\",\\\"params\\\":{\\\"mapType\\\":\\\"Scaled Circle Markers\\\",\\\"isDesaturated\\\":true,\\\"addTooltip\\\":true,\\\"heatClusterSize\\\":1.5,\\\"legendPosition\\\":\\\"bottomright\\\",\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"wms\\\":{\\\"enabled\\\":false,\\\"options\\\":{\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true},\\\"baseLayersAreLoaded\\\":{},\\\"tmsLayers\\\":[{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}],\\\"selectedTmsLayer\\\":{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"geohash_grid\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"start_gps\\\",\\\"autoPrecision\\\":true,\\\"isFilteredByCollar\\\":true,\\\"useGeocentroid\\\":true,\\\"precision\\\":5}}]}\",\n      \"uiStateJSON\": \"{\\\"mapZoom\\\":10,\\\"mapCenter\\\":[41.88285380945687,-87.67227172851564]}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b2cb05a0-8eb3-11e8-bf09-e9fa0893099a\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week6_Review/solution/p55-coordinate-map.json",
    "content": "[\n  {\n    \"_id\": \"db4c4180-8eb6-11e8-bf09-e9fa0893099a\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"exercise2 - coordinate map2\",\n      \"visState\": \"{\\\"title\\\":\\\"exercise2 - coordinate map2\\\",\\\"type\\\":\\\"tile_map\\\",\\\"params\\\":{\\\"mapType\\\":\\\"Scaled Circle Markers\\\",\\\"isDesaturated\\\":true,\\\"addTooltip\\\":true,\\\"heatClusterSize\\\":1.5,\\\"legendPosition\\\":\\\"bottomright\\\",\\\"mapZoom\\\":2,\\\"mapCenter\\\":[0,0],\\\"wms\\\":{\\\"enabled\\\":false,\\\"options\\\":{\\\"format\\\":\\\"image/png\\\",\\\"transparent\\\":true},\\\"baseLayersAreLoaded\\\":{},\\\"tmsLayers\\\":[{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}],\\\"selectedTmsLayer\\\":{\\\"id\\\":\\\"road_map\\\",\\\"url\\\":\\\"https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=6.2.4\\\",\\\"minZoom\\\":0,\\\"maxZoom\\\":10,\\\"attribution\\\":\\\"<p>&#169; <a href=\\\\\\\"http://www.openstreetmap.org/copyright\\\\\\\">OpenStreetMap</a> contributors | <a href=\\\\\\\"https://www.elastic.co/elastic-maps-service\\\\\\\">Elastic Maps Service</a></p>&#10;\\\",\\\"subdomains\\\":[]}}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"geohash_grid\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"end_gps\\\",\\\"autoPrecision\\\":true,\\\"isFilteredByCollar\\\":true,\\\"useGeocentroid\\\":true,\\\"precision\\\":5}}]}\",\n      \"uiStateJSON\": \"{\\\"mapZoom\\\":10,\\\"mapCenter\\\":[41.88285380945687,-87.67227172851564]}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b2cb05a0-8eb3-11e8-bf09-e9fa0893099a\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week6_Review/solution/p58-timelion.json",
    "content": "[\n  {\n    \"_id\": \"741ee020-8eb7-11e8-bf09-e9fa0893099a\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"exercise3 - timelion\",\n      \"visState\": \"{\\\"title\\\":\\\"exercise3 - timelion\\\",\\\"type\\\":\\\"timelion\\\",\\\"params\\\":{\\\"expression\\\":\\\".es(index=chicago-bike-*, timefield=starttime, metric=sum:tripduration).label(현재), .es(index=chicago-bike-*, timefield=starttime, metric=sum:tripduration, offset=-1M).label(전월)\\\",\\\"interval\\\":\\\"auto\\\"},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{}\"\n      }\n    }\n  }\n]\n"
  },
  {
    "path": "Week6_Review/solution/p60-pie-chart.json",
    "content": "[\n  {\n    \"_id\": \"c5a13310-8eb9-11e8-bf09-e9fa0893099a\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"exercise4 - pie chart\",\n      \"visState\": \"{\\\"title\\\":\\\"exercise4 - pie chart\\\",\\\"type\\\":\\\"pie\\\",\\\"params\\\":{\\\"type\\\":\\\"pie\\\",\\\"addTooltip\\\":true,\\\"addLegend\\\":true,\\\"legendPosition\\\":\\\"right\\\",\\\"isDonut\\\":false,\\\"labels\\\":{\\\"show\\\":false,\\\"values\\\":true,\\\"last_level\\\":true,\\\"truncate\\\":100}},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"histogram\\\",\\\"schema\\\":\\\"split\\\",\\\"params\\\":{\\\"field\\\":\\\"hour\\\",\\\"interval\\\":6,\\\"extended_bounds\\\":{},\\\"row\\\":false}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"segment\\\",\\\"params\\\":{\\\"field\\\":\\\"events\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":5,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"spy\\\":null}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b2cb05a0-8eb3-11e8-bf09-e9fa0893099a\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week6_Review/solution/p62-data-table.json",
    "content": "[\n  {\n    \"_id\": \"5943d8c0-8eba-11e8-bf09-e9fa0893099a\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"exercise5 - data table\",\n      \"visState\": \"{\\\"title\\\":\\\"exercise5 - data table\\\",\\\"type\\\":\\\"table\\\",\\\"params\\\":{\\\"perPage\\\":10,\\\"showPartialRows\\\":false,\\\"showMeticsAtAllLevels\\\":false,\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null},\\\"showTotal\\\":false,\\\"totalFunc\\\":\\\"sum\\\"},\\\"aggs\\\":[{\\\"id\\\":\\\"1\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"count\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"customLabel\\\":\\\"이용 건 수\\\"}},{\\\"id\\\":\\\"2\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"from_station_name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":10,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"from_station\\\"}},{\\\"id\\\":\\\"3\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"terms\\\",\\\"schema\\\":\\\"bucket\\\",\\\"params\\\":{\\\"field\\\":\\\"to_station_name\\\",\\\"otherBucket\\\":false,\\\"otherBucketLabel\\\":\\\"Other\\\",\\\"missingBucket\\\":false,\\\"missingBucketLabel\\\":\\\"Missing\\\",\\\"size\\\":10,\\\"order\\\":\\\"desc\\\",\\\"orderBy\\\":\\\"1\\\",\\\"customLabel\\\":\\\"to_station\\\"}},{\\\"id\\\":\\\"4\\\",\\\"enabled\\\":true,\\\"type\\\":\\\"avg\\\",\\\"schema\\\":\\\"metric\\\",\\\"params\\\":{\\\"field\\\":\\\"tripduration\\\",\\\"customLabel\\\":\\\"평균 이용 시간\\\"}}]}\",\n      \"uiStateJSON\": \"{\\\"vis\\\":{\\\"params\\\":{\\\"sort\\\":{\\\"columnIndex\\\":null,\\\"direction\\\":null}}}}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"index\\\":\\\"b2cb05a0-8eb3-11e8-bf09-e9fa0893099a\\\",\\\"filter\\\":[],\\\"query\\\":{\\\"query\\\":\\\"\\\",\\\"language\\\":\\\"lucene\\\"}}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week6_Review/solution/p64-markdown.json",
    "content": "[\n  {\n    \"_id\": \"ce7e6010-8eba-11e8-bf09-e9fa0893099a\",\n    \"_type\": \"visualization\",\n    \"_source\": {\n      \"title\": \"markdown\",\n      \"visState\": \"{\\\"title\\\":\\\"markdown\\\",\\\"type\\\":\\\"markdown\\\",\\\"params\\\":{\\\"fontSize\\\":12,\\\"markdown\\\":\\\"#### Elastic Stack으로 Data Dashboard 만들기 CAMP 5기 최종 Dashboard\\\\n---\\\"},\\\"aggs\\\":[]}\",\n      \"uiStateJSON\": \"{}\",\n      \"description\": \"\",\n      \"version\": 1,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{}\"\n      }\n    }\n  }\n]\n"
  },
  {
    "path": "Week6_Review/solution/p65-dashboard.json",
    "content": "[\n  {\n    \"_id\": \"ed5fa2e0-8eb6-11e8-bf09-e9fa0893099a\",\n    \"_type\": \"dashboard\",\n    \"_source\": {\n      \"title\": \"week6\",\n      \"hits\": 0,\n      \"description\": \"\",\n      \"panelsJSON\": \"[{\\\"embeddableConfig\\\":{\\\"vis\\\":{\\\"defaultColors\\\":{\\\"0 - 3\\\":\\\"rgb(255,255,204)\\\",\\\"11 - 13\\\":\\\"rgb(252,105,49)\\\",\\\"13 - 16\\\":\\\"rgb(234,41,32)\\\",\\\"16 - 18\\\":\\\"rgb(194,3,37)\\\",\\\"3 - 6\\\":\\\"rgb(255,234,155)\\\",\\\"6 - 8\\\":\\\"rgb(254,206,106)\\\",\\\"8 - 11\\\":\\\"rgb(253,162,69)\\\"},\\\"legendOpen\\\":false}},\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"1\\\",\\\"w\\\":6,\\\"x\\\":6,\\\"y\\\":10},\\\"id\\\":\\\"cd2bbaa0-8eb5-11e8-bf09-e9fa0893099a\\\",\\\"panelIndex\\\":\\\"1\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"2\\\",\\\"w\\\":6,\\\"x\\\":0,\\\"y\\\":1},\\\"id\\\":\\\"cdfa11b0-8eb6-11e8-bf09-e9fa0893099a\\\",\\\"panelIndex\\\":\\\"2\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"3\\\",\\\"w\\\":6,\\\"x\\\":6,\\\"y\\\":1},\\\"id\\\":\\\"db4c4180-8eb6-11e8-bf09-e9fa0893099a\\\",\\\"panelIndex\\\":\\\"3\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"4\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":4},\\\"id\\\":\\\"741ee020-8eb7-11e8-bf09-e9fa0893099a\\\",\\\"panelIndex\\\":\\\"4\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"5\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":7},\\\"id\\\":\\\"c5a13310-8eb9-11e8-bf09-e9fa0893099a\\\",\\\"panelIndex\\\":\\\"5\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":3,\\\"i\\\":\\\"6\\\",\\\"w\\\":6,\\\"x\\\":0,\\\"y\\\":10},\\\"id\\\":\\\"5943d8c0-8eba-11e8-bf09-e9fa0893099a\\\",\\\"panelIndex\\\":\\\"6\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"},{\\\"gridData\\\":{\\\"h\\\":1,\\\"i\\\":\\\"7\\\",\\\"w\\\":12,\\\"x\\\":0,\\\"y\\\":0},\\\"id\\\":\\\"ce7e6010-8eba-11e8-bf09-e9fa0893099a\\\",\\\"panelIndex\\\":\\\"7\\\",\\\"type\\\":\\\"visualization\\\",\\\"version\\\":\\\"6.2.4\\\"}]\",\n      \"optionsJSON\": \"{\\\"darkTheme\\\":false,\\\"hidePanelTitles\\\":false,\\\"useMargins\\\":true}\",\n      \"version\": 1,\n      \"timeRestore\": false,\n      \"kibanaSavedObjectMeta\": {\n        \"searchSourceJSON\": \"{\\\"query\\\":{\\\"language\\\":\\\"lucene\\\",\\\"query\\\":\\\"\\\"},\\\"filter\\\":[],\\\"highlightAll\\\":true,\\\"version\\\":true}\"\n      }\n    }\n  }\n]"
  },
  {
    "path": "Week6_Review/solution/p66_query_dsl",
    "content": "GET chicago*/_search\n{\n  \"query\": {\n    \"bool\": {\n      \"must\": [\n        {\n          \"prefix\": {\n            \"to_station_name\": {\n              \"value\": \"Cli\"\n            }\n          }\n        }\n      ],\n      \"must_not\": [\n        {\n          \"term\": {\n            \"from_station_id\": {\n              \"value\": \"313\"\n            }\n          }\n        }\n      ],\n      \"should\": [\n        {\n          \"term\": {\n            \"events\": {\n              \"value\": \"clear\"\n            }\n          }\n        },\n        {\n          \"range\": {\n            \"dpcapacity_end\": {\n              \"gte\": 30,\n              \"lte\": 40\n            }\n          }\n        }\n      ],\n      \"minimum_should_match\": 1\n    }\n  }\n}\n"
  },
  {
    "path": "Week6_Review/solution/p67_logstash",
    "content": "input {\n  elasticsearch {\n    hosts => [\"elasticsearch:9200\"]\n    index => \"chicago-bike-*\"\n    query => '{\n      \"query\": {\n        \"bool\": {\n          \"must\": [\n            {\n              \"term\": {\n                \"tags\": {\n                  \"value\": \"VIP\"\n                }\n              }\n            },\n            {\n              \"term\": {\n                \"gender\": {\n                  \"value\": \"Female\"\n                }\n              }\n            },\n            {\n              \"range\" : {\n                \"dpcapacity_end\" : {\n                  \"gte\" : 10,\n                  \"lt\" : 12\n                }\n              }\n            }\n          ],\n          \"must_not\" : [\n            {\n              \"term\" : {\n                \"events\" : {\n                  \"value\" : \"cloudy\"\n                }\n              }                \n            }          \n          ]                  \n        }          \n      },\n      \"sort\": [\n        {\n          \"tripduration\": {\n            \"order\": \"desc\"\n          }                  \n        }         \n      ]\n    }'\n  }\n}\n\noutput {\n  csv {\n    fields => [\"starttime\", \"stoptime\", \"tripduration\"]\n    path => \"/usr/share/logstash/data/chicago.csv\"          \n  }\n}\n"
  },
  {
    "path": "Week6_Review/solution/p71_backup_logstash",
    "content": "input {\n  elasticsearch {\n    hosts => [\"elasticsearch.higee.co\"]\n    index => \"shopping\"\n  }\n}\n\noutput {\n  elasticsearch {\n    hosts => [\"${host}\"]\n    index => \"shopping-backup\"\n  }\n}\n"
  },
  {
    "path": "Week6_Review/solution/p73_backup_reindex",
    "content": "POST _reindex\n{\n  \"source\": {\n    \"remote\": {\n      \"host\": \"http://elasticsearch.higee.co:80\"\n        },\n    \"index\": \"shopping\",\n    \"query\": {\n      \"match_all\": {}\n      }\n    },\n  \"dest\": {\n    \"index\": \"shopping-backup\"\n  }\n}\n"
  }
]