{"id":88456,"date":"2020-07-14T13:41:59","date_gmt":"2020-07-14T11:41:59","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/dobavlenie-nody-v-skydive-topologiyu-vruchnuyu-cherez-skydive-client"},"modified":"2020-07-14T13:41:59","modified_gmt":"2020-07-14T11:41:59","slug":"dobavlenie-nody-v-skydive-topologiyu-vruchnuyu-cherez-skydive-client","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/dobavlenie-nody-v-skydive-topologiyu-vruchnuyu-cherez-skydive-client","title":{"rendered":"Manually adding a node to the Skydive topology via the Skydive client","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Skydive is a real-time open-source network topology and protocol analyzer. It aims to provide a comprehensive way to understand what is happening in the network infrastructure.<\/p>\n<p><\/p>\n<p>To pique your interest, here are a couple of screenshots about Skydive. Further down, there will be a post introducing Skydive.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Manually adding a node to the Skydive topology via the Skydive client\" src=\"\/wp-content\/uploads\/2020\/07\/f6c3d8013a53a530474a32c888b6331c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Manually adding a node to the Skydive topology via the Skydive client\" src=\"\/wp-content\/uploads\/2020\/07\/b82fd21aa34434a7b435f22e354feb45.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Post \"<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/472724\/\">Introduction to skydive.network<\/a><\/noindex>\" on Habr.<\/p>\n<p><\/p>\n<p>Skydive displays the network topology by receiving network events from Skydive agents. Have you ever wondered how to add or display network components that are outside of the Skydive agent network or non-network objects such as TOR, data storage, etc.? Worry no more, thanks to the Node rule API. <\/p>\n<p><\/p>\n<p>Starting from version 0.20, Skydive provides a Node rule API that can be used to create new nodes and edges and to update the metadata of existing nodes. The Node rule API is split into two APIs: the Node rule API and the Edge rule API. The Node rule API is used to create a new node and update the metadata of an existing node. The Edge rule API is used to create a boundary between two nodes, i.e., it connects two nodes.<\/p>\n<p><\/p>\n<p>In this blog, we will explore two use cases, one of which is a network component that is not part of the Skydive network. The second case is a non-network component. Before that, we will review some basic ways to use the topology rule API.<\/p>\n<p><\/p>\n<h3 id=\"sozdanie-uzla-skydive\">Creating a Skydive Node<\/h3>\n<p><\/p>\n<p>To create a node, you need to specify a unique node name and a valid node type. You can also provide some additional parameters.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">skydive client node-rule create --action=\"create\" --node-name=\"node1\" --node-type=\"fabric\" --name=\"node rule1\"\n{\n  \"UUID\": \"ea21c30f-cfaa-4f2d-693d-95159acb71ed\",\n  \"Name\": \"node rule1\",\n  \"Description\": \"\",\n  \"Metadata\": {\n    \"Name\": \"node1\",\n    \"Type\": \"fabric\"\n  },\n  \"Action\": \"create\",\n  \"Query\": \"\"\n}<\/code><\/pre>\n<p><\/p>\n<h3 id=\"obnovlenie-metadannyh-uzlov-skydive\">Updating Skydive Node Metadata<\/h3>\n<p><\/p>\n<p>To update the metadata of an existing node, you need to provide a Gremlin query to select the nodes for which you want to update the metadata. Based on your query, you can update the metadata of one or more nodes using a single node rule.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">skydive client node-rule create --action=\"update\" --name=\"update rule\" --query=\"G.V().Has('Name', 'node1')\" --metadata=\"key1=val1, key2=val2\"\n{\n  \"UUID\": \"3e6c0e15-a863-4583-6345-715053ac47ce\",\n  \"Name\": \"update rule\",\n  \"Description\": \"\",\n  \"Metadata\": {\n    \"key1\": \"val1\",\n    \"key2\": \"val2\"\n  },\n  \"Action\": \"update\",\n  \"Query\": \"G.V().Has('Name', 'node1')\"\n}<\/code><\/pre>\n<p><\/p>\n<h3 id=\"sozdanie-rebra-skydive\">Creating an edge in Skydive<\/h3>\n<p><\/p>\n<p>To create an edge, you must specify the source and destination nodes and the type of relation. For creating a child node, the relation type should be ownership, and similarly, for creating a layer2 relation, the relation type should be layer2. You can create more than one relation between two nodes, but the type of relation must be different.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">skydive client edge-rule create --name=\"edge\" --src=\"G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')\" --dst=\"G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')\" --relationtype=\"both\"\n{\n  \"UUID\": \"50fec124-c6d0-40c7-42a3-2ed8d5fbd410\",\n  \"Name\": \"edge\",\n  \"Description\": \"\",\n  \"Src\": \"G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')\",\n  \"Dst\": \"G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')\",\n  \"Metadata\": {\n    \"RelationType\": \"both\"\n  }\n}<\/code><\/pre>\n<p><\/p>\n<h3 id=\"pervyy-variant-ispolzovaniya\">First Use Case<\/h3>\n<p><\/p>\n<p>In this case, we will look at how to display a non-network device in the skydive topology. Let\u2019s consider that we have a data storage device that needs to be represented in the skydive topology diagram with some useful metadata.<\/p>\n<p><\/p>\n<p>We just need to create a node rule to add the device to the topology. We can include the device metadata as part of the create command or subsequently create one or more update node rule commands.<\/p>\n<p><\/p>\n<p>Run the node rule command below to add the storage device to the topology schema.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">skydive client node-rule create --action=\"create\" --node-name=\"sda\" --node-type=\"persistentvolume\" --metadata=\"DEVNAME=\\\/dev\\\/sda,DEVTYPE=disk,ID.MODEL=SD_MMC, ID.MODEL ID=0316, ID.PATH TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0, ID.SERIAL SHORT=20120501030900000, ID.VENDOR=Generic-, ID.VENDOR ID=0bda, MAJOR=8, MINOR=0, SUBSYSTEM=block, USEC_INITIALIZED=104393719727\"<\/code><\/pre>\n<p><\/p>\n<p>Run the edge rule command below to link the created node with the host node.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">skydive client edge-rule create --src=\"G.V().Has('Name', 'node1')\" --dst=\"G.V().Has('Name', 'sda')\" --relationtype=\"ownership\"<\/code><\/pre>\n<p><\/p>\n<p>After the above commands, you can now see the device visible on the skydive topology diagram with the specified metadata, as shown in the figure below.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Manually adding a node to the Skydive topology via the Skydive client\" src=\"\/wp-content\/uploads\/2020\/07\/be4eafb48f0d2d5e065301ec29a86fc4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"vtoroy-variant-ispolzovaniya\">Second Use Case<\/h3>\n<p><\/p>\n<p>In this case, we will see how to add a network device that is not part of the skydive network. Let's consider this example. We have two skydive agents running on two different hosts, and to connect these two hosts, we need a TOR switch. Even if we can achieve this by defining the structure and link nodes in the configuration file, let's see how we can do the same using topology API rules.<\/p>\n<p><\/p>\n<p>Without a TOR switch, the two agents will appear as two separate nodes with no links, as shown in the figure below.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Manually adding a node to the Skydive topology via the Skydive client\" src=\"\/wp-content\/uploads\/2020\/07\/e829e93c515d4700770474d166bed11e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Now, run the following Node Rule commands to create the TOR switch and the ports.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">skydive client node-rule create --node-name=\"TOR\" --node-type=\"fabric\" --action=\"create\"\nskydive client node-rule create --node-name=\"port1\" --node-type=\"port\" --action=\"create\"\nskydive client node-rule create --node-name=\"port2\" --node-type=\"port\" --action=\"create\"<\/code><\/pre>\n<p><\/p>\n<p>As you can see, the TOR switch and ports have been created and added to the skydive topology, and now the topology will look as shown in the figure below.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Manually adding a node to the Skydive topology via the Skydive client\" src=\"\/wp-content\/uploads\/2020\/07\/2083d1d1b59b673acb9c72173e0f5311.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Now, run the following Edge Rule commands to create a link between the TOR switch, port 1, and the public interface of host 1.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">skydive client edge-rule create --src=\"G.V().Has('Name', 'TOR')\" --dst=\"G.V().Has('Name', 'port1')\" --relationtype=\"ownership\"\nskydive client edge-rule create --src=\"G.V().Has('Name', 'TOR')\" --dst=\"G.V().Has('Name', 'port1')\" --relationtype=\"layer2\"\nskydive client edge-rule create --src=\"G.V().Has('TID', '372c254d-bac9-50c2-4ca9-86dcc6ce8a57')\" --dst=\"G.V().Has('Name', 'port1')\" --relationtype=\"layer2\"<\/code><\/pre>\n<p><\/p>\n<p>Run the following commands to create a link between the TOR switch, port 2, and the public interface of host 2.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">skydive client edge-rule create --src=\"G.V().Has('Name', 'TOR')\" --dst=\"G.V().Has('Name', 'port2')\" --relationtype=\"layer2\"\nskydive client edge-rule create --src=\"G.V().Has('Name', 'TOR')\" --dst=\"G.V().Has('Name', 'port2')\" --relationtype=\"ownership\"\nskydive client edge-rule create --src=\"G.V().Has('TID', '50037073-7862-5234-4996-e58cc067c69c')\" --dst=\"G.V().Has('Name', 'port2')\" --relationtype=\"layer2\"<\/code><\/pre>\n<p><\/p>\n<p>Now, ownership and layer2 links are being created between the TOR switch and the port, as well as layer2 links between the agents and the ports. Now the final topology will look as shown in the figure below.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Manually adding a node to the Skydive topology via the Skydive client\" src=\"\/wp-content\/uploads\/2020\/07\/565a865a25c5231ce83fca36eac7d1e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Now, the two hosts\/agents are correctly connected, and you can check the connection or create a shortest path capture between the two hosts.<\/p>\n<p><\/p>\n<p>P.S. Link to <noindex><a rel=\"nofollow\" href=\"http:\/\/skydive.network\/blog\/topology-rules.html\">the original post<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Looking for people who could write posts about other Skydive features.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/skydive_network_ru\">Telegram chat<\/a><\/noindex> on skydive.network.<\/p>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/510666\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Skydive \u2014 \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0441\u0435\u0442\u0438 \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041e\u043d \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0441, \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0430\u0440\u0443 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432 \u043f\u0440\u043e Skydive. \u0427\u0443\u0442\u044c \u043d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442 \u043f\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044e \u0432 Skydive. \u041f\u043e\u0441\u0442 \u00ab\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 skydive.network\u00bb \u043d\u0430 \u0425\u0430\u0431\u0440\u0435. Skydive \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u0441\u0435\u0442\u0438, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":88457,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-88456","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"Skydive \u2014 \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0441\u0435\u0442\u0438 \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/dobavlenie-nody-v-skydive-topologiyu-vruchnuyu-cherez-skydive-client\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0434\u044b \u0432 Skydive \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0447\u0435\u0440\u0435\u0437 Skydive client | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Skydive \u2014 \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0441\u0435\u0442\u0438 \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/dobavlenie-nody-v-skydive-topologiyu-vruchnuyu-cherez-skydive-client\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-14T11:41:59+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-14T11:41:59+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Adding a node to the Skydive topology manually via the Skydive client | ProHoster","description":"Skydive is an open-source real-time network topology and protocol analyzer.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/dobavlenie-nody-v-skydive-topologiyu-vruchnuyu-cherez-skydive-client","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0434\u044b \u0432 Skydive \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0447\u0435\u0440\u0435\u0437 Skydive client | ProHoster","og:description":"Skydive \u2014 \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0441\u0435\u0442\u0438 \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/dobavlenie-nody-v-skydive-topologiyu-vruchnuyu-cherez-skydive-client","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-14T11:41:59+00:00","article:modified_time":"2020-07-14T11:41:59+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"88456","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:30:41","updated":"2022-10-08 03:19:43","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/88456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=88456"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/88456\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/88457"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=88456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=88456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=88456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}