{"id":1114,"date":"2014-10-13T14:14:57","date_gmt":"2014-10-13T05:14:57","guid":{"rendered":"http:\/\/tech.akat.info\/?p=1114"},"modified":"2014-10-18T21:03:57","modified_gmt":"2014-10-18T12:03:57","slug":"php-conference-2014%e3%81%ab%e5%8f%82%e5%8a%a0%e3%81%97%e3%81%be%e3%81%97%e3%81%9f-%e3%81%9d%e3%81%ae%e3%81%95%e3%82%93","status":"publish","type":"post","link":"https:\/\/tech.akat.info\/?p=1114","title":{"rendered":"PHP Conference 2014\u306b\u53c2\u52a0\u3057\u307e\u3057\u305f-\u305d\u306e\u3055\u3093-"},"content":{"rendered":"<p>\u3056\u3063\u304f\u308a\u307e\u3068\u3081\u3001\u305d\u306e\u5f8c\u81ea\u5206\u3067\u3084\u3063\u3066\u307f\u305f\u3053\u3068\u3082\u542b\u3080<\/p>\n<h1>\u4eca\u65e5\u304b\u3089\u59cb\u3081\u308b PHP\u30a8\u30f3\u30b8\u30cb\u30a2\u306e\u305f\u3081\u306e\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u89e3\u6790\u57fa\u76e4\u69cb\u7bc9\u5165\u9580 \u7956\u5c71\u3055\u3093<\/h1>\n<p>http:\/\/who-you-me.github.io\/slides\/phpcon2014\/#\/<\/p>\n<p>\u751f\u30ed\u30b0\u3092\u3069\u3046\u89e3\u6790\u3059\u308b\u304b\uff1f\u306b\u3064\u3044\u3066<br \/>\n\u4e3b\u306a\u76ee\u7684\u306f<br \/>\n\u30fb\u30ed\u30b0\u8abf\u67fb\u3092\u52b9\u7387\u5316\u3059\u308b<br \/>\n\u30fb\u30e6\u30fc\u30b6\u306e\u884c\u52d5\u5c65\u6b74\u3092\u5206\u6790\u3059\u308b<br \/>\n\u52b9\u7387\u5316\u306f\u3001fluentd \uff06 Elasticsearch \uff06 Kibana \u304c\u30aa\u30b9\u30b9\u30e1<br \/>\n\u884c\u52d5\u5c65\u6b74\u5206\u6790\u306f\u3001fluentd \uff06 BigQuery \u304c\u30aa\u30b9\u30b9\u30e1\u3001SQL\u611f\u899a\u3067\u64cd\u4f5c\u53ef\u80fd<\/p>\n<p>\u307e\u305a\u306ffluentd \uff06 Elasticsearch \uff06 Kibana \u3092\u69cb\u7bc9\u3057\u3066\u307f\u305f<\/p>\n<h2>GOAL<\/h2>\n<p><a href=\"http:\/\/tech.akat.info\/wp-content\/uploads\/2014\/10\/Screenshot-2014-10-13-at-20.36.14.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/tech.akat.info\/wp-content\/uploads\/2014\/10\/Screenshot-2014-10-13-at-20.36.14.png\" alt=\"Screenshot 2014-10-13 at 20.36.14\" width=\"697\" height=\"322\" class=\"alignnone size-full wp-image-1117\" \/><\/a><\/p>\n<h2>apache<\/h2>\n<p>LTSV\u5f62\u5f0f\u3067\u30ed\u30b0\u3092\u4fdd\u5b58\u3059\u308b\u3088\u3046\u306b\u3059\u308b\u3001\u3053\u308c\u3092fluentd\u306b\u9001\u308b<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nroot@hostname:\/home\/shimizu# cat \/etc\/apache2\/apache2.conf\r\n...\r\nLogFormat &quot;unixtime:%{%s}t\\tdatetime:%{%d\/%b\/%Y:%H:%M:%S %z}t\\tx-forwaded-for:%{X-Forwarded-For}i\\thost:%h\\tsize:%B\\tresponse_time:%D\\tstatus:%&gt;s\\tserver:%A\\tHost:%{Host}i\\tmethod:%m\\tpath:%U%q\\tprotocol:%H\\tUA:%{User-Agent}i\\treferer:%{Referer}i&quot; ltsv\r\n...\r\nroot@hostname:\/home\/shimizu# vi \/etc\/apache2\/sites-enabled\/000-default \r\n...\r\nCustomLog \/var\/www\/log\/access.log ltsv\r\n...\r\nroot@hostname:\/home\/shimizu# apache2ctl configtest\r\nSyntax OK\r\nroot@hostname:\/home\/shimizu# \/etc\/init.d\/apache2 restart\r\n&#x5B; ok ] Restarting web server: apache2 ... waiting .\r\n<\/pre>\n<h2>fluentd\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u3001\u5fc5\u8981\u306a\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>\u203bfluentd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u5272\u611b<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nroot@hostname:\/home\/shimizu# \/usr\/lib\/fluent\/ruby\/bin\/fluent-gem install fluent-plugin-filter\r\nFetching: fluent-plugin-filter-0.0.1.gem (100%)\r\nSuccessfully installed fluent-plugin-filter-0.0.1\r\n1 gem installed\r\nInstalling ri documentation for fluent-plugin-filter-0.0.1...\r\nInstalling RDoc documentation for fluent-plugin-filter-0.0.1...\r\nroot@hostname:\/home\/shimizu# \/usr\/lib\/fluent\/ruby\/bin\/fluent-gem install fluent-plugin-forest\r\nFetching: fluent-plugin-forest-0.3.0.gem (100%)\r\nSuccessfully installed fluent-plugin-forest-0.3.0\r\n1 gem installed\r\nInstalling ri documentation for fluent-plugin-forest-0.3.0...\r\nInstalling RDoc documentation for fluent-plugin-forest-0.3.0...\r\nroot@hostname:\/home\/shimizu# \/usr\/lib\/fluent\/ruby\/bin\/fluent-gem install fluent-plugin-config-expander\r\nFetching: fluent-plugin-config-expander-0.1.5.gem (100%)\r\nSuccessfully installed fluent-plugin-config-expander-0.1.5\r\n1 gem installed\r\nInstalling ri documentation for fluent-plugin-config-expander-0.1.5...\r\nInstalling RDoc documentation for fluent-plugin-config-expander-0.1.5...\r\nroot@hostname:\/home\/shimizu# \/usr\/lib\/fluent\/ruby\/bin\/fluent-gem install fluent-plugin-typecast\r\nFetching: fluent-plugin-typecast-0.1.2.gem (100%)\r\nSuccessfully installed fluent-plugin-typecast-0.1.2\r\n1 gem installed\r\nInstalling ri documentation for fluent-plugin-typecast-0.1.2...\r\nInstalling RDoc documentation for fluent-plugin-typecast-0.1.2...\r\nroot@hostname:\/home\/shimizu# \/usr\/lib\/fluent\/ruby\/bin\/fluent-gem install fluent-plugin-parser\r\nFetching: fluent-plugin-parser-0.3.4.gem (100%)\r\nSuccessfully installed fluent-plugin-parser-0.3.4\r\n1 gem installed\r\nInstalling ri documentation for fluent-plugin-parser-0.3.4...\r\nInstalling RDoc documentation for fluent-plugin-parser-0.3.4...\r\n\r\nroot@hostname:\/home\/shimizu# \/usr\/lib\/fluent\/ruby\/bin\/fluent-gem install fluent-plugin-elasticsearch\r\nFetching: patron-0.4.18.gem (100%)\r\nBuilding native extensions.  This could take a while...\r\nERROR:  Error installing fluent-plugin-elasticsearch:\r\n        ERROR: Failed to build gem native extension.\r\n\r\n        \/usr\/lib\/fluent\/ruby\/bin\/ruby extconf.rb\r\nchecking for curl-config... no\r\nchecking for main() in -lcurl... no\r\n*** extconf.rb failed ***\r\nCould not create Makefile due to some reason, probably lack of\r\nnecessary libraries and\/or headers.  Check the mkmf.log file for more\r\ndetails.  You may need configuration options.\r\n\r\nProvided configuration options:\r\n        --with-opt-dir\r\n        --without-opt-dir\r\n        --with-opt-include\r\n        --without-opt-include=${opt-dir}\/include\r\n        --with-opt-lib\r\n        --without-opt-lib=${opt-dir}\/lib\r\n        --with-make-prog\r\n        --without-make-prog\r\n        --srcdir=.\r\n        --curdir\r\n        --ruby=\/usr\/lib\/fluent\/ruby\/bin\/ruby\r\n        --with-curl-dir\r\n        --without-curl-dir\r\n        --with-curl-include\r\n        --without-curl-include=${curl-dir}\/include\r\n        --with-curl-lib\r\n        --without-curl-lib=${curl-dir}\/lib\r\n        --with-curllib\r\n        --without-curllib\r\nextconf.rb:39:in `&lt;main&gt;':   Can't find libcurl or curl\/curl.h (RuntimeError)\r\n\r\n  Try passing --with-curl-dir or --with-curl-lib and --with-curl-include\r\n  options to extconf.\r\n\r\n\r\nGem files will remain installed in \/usr\/lib\/fluent\/ruby\/lib\/ruby\/gems\/1.9.1\/gems\/patron-0.4.18 for inspection.\r\nResults logged to \/usr\/lib\/fluent\/ruby\/lib\/ruby\/gems\/1.9.1\/gems\/patron-0.4.18\/ext\/patron\/gem_make.out\r\n\r\n### \u3044\u308d\u3044\u308d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u3089\u3001\u3046\u307e\u304f\u3044\u304f\u3088\u3046\u306b\u306a\u3063\u305f ###\r\nroot@hostname:\/home\/shimizu# aptitude install ruby1.9.1-dev\r\n\u4ee5\u4e0b\u306e\u65b0\u898f\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059:\r\n  libruby1.9.1{a} ruby1.9.1{a} ruby1.9.1-dev \r\n...\r\n\r\nroot@hostname:\/home\/shimizu# aptitude install liberuby-dev\r\n\u4ee5\u4e0b\u306e\u65b0\u898f\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059:\r\n  liberuby{a} liberuby-dev libreadline5{a} libruby1.8{a} \r\n...\r\n\r\nroot@hostname:\/home\/shimizu# aptitude install libcurl4-gnutls-dev\r\n\u4ee5\u4e0b\u306e\u65b0\u898f\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059:\r\n  comerr-dev{a} krb5-multidev{a} libcurl4-gnutls-dev libgcrypt11-dev{a} libgnutls-dev{a} libgnutls-openssl27{a} libgnutlsxx27{a} \r\n  libgpg-error-dev{a} libgssrpc4{a} libidn11-dev{a} libkadm5clnt-mit8{a} libkadm5srv-mit8{a} libkdb5-6{a} libkrb5-dev{a} libldap2-dev{a} \r\n  libp11-kit-dev{a} librtmp-dev{a} libssh2-1-dev{a} libtasn1-3-dev{a} pkg-config{a} \r\n...\r\n\r\nroot@hostname:\/home\/shimizu# \/usr\/lib\/fluent\/ruby\/bin\/fluent-gem install fluent-plugin-elasticsearch\r\nBuilding native extensions.  This could take a while...\r\nFetching: multi_json-1.10.1.gem (100%)\r\nFetching: multipart-post-2.0.0.gem (100%)\r\nFetching: faraday-0.9.0.gem (100%)\r\nFetching: elasticsearch-transport-1.0.5.gem (100%)\r\nFetching: elasticsearch-api-1.0.5.gem (100%)\r\nFetching: elasticsearch-1.0.5.gem (100%)\r\nFetching: fluent-plugin-elasticsearch-0.5.1.gem (100%)\r\nSuccessfully installed patron-0.4.18\r\nSuccessfully installed multi_json-1.10.1\r\nSuccessfully installed multipart-post-2.0.0\r\nSuccessfully installed faraday-0.9.0\r\nSuccessfully installed elasticsearch-transport-1.0.5\r\nSuccessfully installed elasticsearch-api-1.0.5\r\nSuccessfully installed elasticsearch-1.0.5\r\nSuccessfully installed fluent-plugin-elasticsearch-0.5.1\r\n8 gems installed\r\nInstalling ri documentation for patron-0.4.18...\r\nInstalling ri documentation for multi_json-1.10.1...\r\nInstalling ri documentation for multipart-post-2.0.0...\r\nInstalling ri documentation for faraday-0.9.0...\r\nInstalling ri documentation for elasticsearch-transport-1.0.5...\r\nInstalling ri documentation for elasticsearch-api-1.0.5...\r\nInstalling ri documentation for elasticsearch-1.0.5...\r\nInstalling ri documentation for fluent-plugin-elasticsearch-0.5.1...\r\nInstalling RDoc documentation for patron-0.4.18...\r\nInstalling RDoc documentation for multi_json-1.10.1...\r\nInstalling RDoc documentation for multipart-post-2.0.0...\r\nInstalling RDoc documentation for faraday-0.9.0...\r\nInstalling RDoc documentation for elasticsearch-transport-1.0.5...\r\nInstalling RDoc documentation for elasticsearch-api-1.0.5...\r\nInstalling RDoc documentation for elasticsearch-1.0.5...\r\nInstalling RDoc documentation for fluent-plugin-elasticsearch-0.5.1...\r\n<\/pre>\n<h2>Elasticsearch<\/h2>\n<p>\u5206\u6563\u578b\u5168\u6587\u691c\u7d22\u30b7\u30b9\u30c6\u30e0\u3001AWS\u306e\u30b5\u30fc\u30d3\u30b9\u3067\u306f\u306a\u3044<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nroot@hostname:\/usr\/local\/src# wget -d https:\/\/download.elasticsearch.org\/elasticsearch\/elasticsearch\/elasticsearch-1.3.4.tar.gz\r\n...\r\nroot@hostname:\/usr\/local\/src# tar xzvf elasticsearch-1.3.4.tar.gz \r\n...\r\nroot@hostname:\/usr\/local\/src# cat \/usr\/local\/src\/elasticsearch-1.3.4\/config\/elasticsearch.yml\r\n...\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\nroot@hostname:\/usr\/local\/src# \/usr\/local\/src\/elasticsearch-1.3.4\/bin\/elasticsearch\r\n&#x5B;2014-10-13 17:47:42,085]&#x5B;INFO ]&#x5B;node                     ] &#x5B;Bucky III] version&#x5B;1.3.4], pid&#x5B;870], build&#x5B;a70f3cc\/2014-09-30T09:07:17Z]\r\n&#x5B;2014-10-13 17:47:42,086]&#x5B;INFO ]&#x5B;node                     ] &#x5B;Bucky III] initializing ...\r\n&#x5B;2014-10-13 17:47:42,094]&#x5B;INFO ]&#x5B;plugins                  ] &#x5B;Bucky III] loaded &#x5B;], sites &#x5B;]\r\n...\r\n\r\nroot@hostname:\/home\/shimizu# curl -X GET http:\/\/localhost:9200\/\r\n{\r\n  &quot;status&quot; : 200,\r\n  &quot;name&quot; : &quot;Bucky III&quot;,\r\n  &quot;version&quot; : {\r\n    &quot;number&quot; : &quot;1.3.4&quot;,\r\n    &quot;build_hash&quot; : &quot;a70f3ccb52200f8f2c87e9c370c6597448eb3e45&quot;,\r\n    &quot;build_timestamp&quot; : &quot;2014-09-30T09:07:17Z&quot;,\r\n    &quot;build_snapshot&quot; : false,\r\n    &quot;lucene_version&quot; : &quot;4.9&quot;\r\n  },\r\n  &quot;tagline&quot; : &quot;You Know, for Search&quot;\r\n}\r\n<\/pre>\n<h2>Kibana<\/h2>\n<p>Elasticsearch\u306e\u30c7\u30fc\u30bf\u3092\u30b0\u30e9\u30d5\u306a\u3069\u306b\u53ef\u8996\u5316\u3059\u308b\u305f\u3081\u306e\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u306e\u30c4\u30fc\u30eb<br \/>\n\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3067\u52d5\u304fjavascript\u306e\u30d3\u30b8\u30e5\u30a2\u30e9\u30a4\u30ba\u30c4\u30fc\u30eb\u3001Ajax\u3067\u30b5\u30fc\u30d0\u306b\u3042\u308bElasticsearch\u3068Kibana\u304c\u901a\u4fe1\u3059\u308b<br \/>\nHTML\/javascript\/CSS\u3060\u3051\u3067\u52d5\u4f5c\u3059\u308b\u305f\u3081\u5c0e\u5165\u3057\u3084\u3059\u3044<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nroot@hostname:\/usr\/local\/src# wget -d https:\/\/download.elasticsearch.org\/kibana\/kibana\/kibana-3.1.1.tar.gz\r\n...\r\nroot@hostname:\/usr\/local\/src# tar xzvf kibana-3.1.1.tar.gz\r\n...\r\nroot@hostname:\/usr\/local\/src# cat kibana-3.1.1\/config.js\r\n...\r\n### elasticsearch\u30b5\u30fc\u30d0\u3092\u6307\u5b9a\u3059\u308b\u3002Kibana\u306f\u30d6\u30e9\u30a6\u30b6\u304b\u3089js\u3067\u52d5\u4f5c\u3059\u308b\u305f\u3081\u3001localhost\u306a\u3069\u3067\u6307\u5b9a\u3057\u3066\u306f\u306a\u3089\u306a\u3044\r\n### \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30db\u30fc\u30eb\u306b\u306a\u308a\u3084\u3059\u3044\u305f\u3081\u8981\u6ce8\u610f\r\n\/\/ elasticsearch: &quot;http:\/\/&quot;+window.location.hostname+&quot;:9200&quot;,\r\nelasticsearch: &quot;http:\/\/49.212.204.46:9200&quot;,\r\n...\r\nroot@hostname:\/usr\/local\/src# cat \/etc\/apache2\/sites-enabled\/000-default \r\n...\r\n        # kibana\u7528\u30d5\u30a9\u30eb\u30c0\u3092\u6307\u5b9a\r\n        alias \/kibana \/usr\/local\/src\/kibana-3.1.1\r\n...\r\nroot@hostname:\/home\/shimizu# apache2ctl configtest\r\nSyntax OK\r\nroot@hostname:\/home\/shimizu# \/etc\/init.d\/apache2 restart\r\n&#x5B; ok ] Restarting web server: apache2 ... waiting .\r\n<\/pre>\n<p>\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068<br \/>\n<a href=\"http:\/\/tech.akat.info\/wp-content\/uploads\/2014\/10\/Screenshot-2014-10-14-at-00.03.12.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/tech.akat.info\/wp-content\/uploads\/2014\/10\/Screenshot-2014-10-14-at-00.03.12.png\" alt=\"Screenshot 2014-10-14 at 00.03.12\" width=\"1339\" height=\"399\" class=\"alignnone size-full wp-image-1120\" \/><\/a><\/p>\n<h1>\u53c2\u8003URL<\/h1>\n<p>\u4eca\u65e5\u304b\u3089\u59cb\u3081\u308bfluentd \u00d7 Elasticsearch \u00d7 kibana \u2013 \u30ab\u30b8\u30e5\u30a2\u30eb\u306a\u89e3\u6790\u30fb\u9ad8\u901f\u5316<br \/>\nhttp:\/\/eure.jp\/blog\/fluentd_elasticsearch_kibana\/<br \/>\nElasticsearch\u3092\u30ea\u30dd\u30b8\u30c8\u30ea\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u65b9\u6cd5<br \/>\nhttp:\/\/www.elasticsearch.org\/blog\/apt-and-yum-repositories\/<br \/>\nElasticsearch Kibana \u3067\u30c7\u30fc\u30bf\u306e\u53ef\u8996\u5316<br \/>\nhttps:\/\/medium.com\/hello-elasticsearch\/elasticsearch-kibana-6ad80550939f<br \/>\nfluentd + Elasticsearch + Kibana\u3067\u59cb\u3081\u308b\u30ed\u30b0\u89e3\u6790 (\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u7de8)<br \/>\nhttp:\/\/blog.excale.net\/index.php\/archives\/1929<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3056\u3063\u304f\u308a\u307e\u3068\u3081\u3001\u305d\u306e\u5f8c\u81ea\u5206\u3067\u3084\u3063\u3066\u307f\u305f\u3053\u3068\u3082\u542b\u3080 \u4eca\u65e5\u304b\u3089\u59cb\u3081\u308b PHP\u30a8\u30f3\u30b8\u30cb\u30a2\u306e\u305f\u3081\u306e\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u89e3\u6790\u57fa\u76e4\u69cb\u7bc9\u5165\u9580 \u7956\u5c71\u3055\u3093 http:\/\/who-you-me.github.io\/slides\/phpcon2014 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[35,29,38],"tags":[],"_links":{"self":[{"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/posts\/1114"}],"collection":[{"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tech.akat.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1114"}],"version-history":[{"count":14,"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/posts\/1114\/revisions"}],"predecessor-version":[{"id":1131,"href":"https:\/\/tech.akat.info\/index.php?rest_route=\/wp\/v2\/posts\/1114\/revisions\/1131"}],"wp:attachment":[{"href":"https:\/\/tech.akat.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tech.akat.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tech.akat.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}