{"id":20133,"date":"2016-11-03T00:28:15","date_gmt":"2016-11-03T08:28:15","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=20133"},"modified":"2019-06-20T19:20:42","modified_gmt":"2019-06-20T16:20:42","slug":"how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/","title":{"rendered":"How to Use Snap Packages when Collecting IoT Data with Predix Time Series"},"content":{"rendered":"<p><a href=\"https:\/\/snapcraft.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Snaps<\/a>, designed by Canonical, are intended for packaging applications and their dependencies, along with the instructions for running these applications.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#Scenario\" >Scenario<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#Packaging_the_generator_into_a_snap\" >Packaging the generator into a snap<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#Releasing_the_snap\" >Releasing the snap<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#Verifying_the_snap\" >Verifying the snap<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#Conclusions\" >Conclusions<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Scenario\"><\/span>Scenario<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>We will use a <a href=\"https:\/\/github.com\/Altoros\/go-predix-timeseries\/tree\/master\/examples\/go-predix-timeseries-demo\/sensor\" target=\"_blank\" rel=\"noopener noreferrer\">data generator<\/a> to create a sample data stream from a device to Predix. <a href=\"https:\/\/www.altoros.com\/blog\/collecting-time-series-data-with-predix-a-golang-api-wrapper-included\/\">Our previous post<\/a> provides more details about this generator.<\/p>\n<p>The <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">sensor.go<\/code> file:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">rand.Seed(time.Now().UTC().UnixNano())    \r\nfor _ = range time.Tick(time.Second) {\r\n    m := a.IngestMessage()\r\n    if m != nil {\r\n        t, _ := m.AddTag(&quot;test_tag&quot;)\r\n        v := randInt(0, 100)\r\n        t.AddDatapoint(measurement.Int(v), dataquality.Good)\r\n        e := m.Send()\r\n        if e != nil {\r\n            fmt.Printf(&quot;Ingesting failed %s\\n&quot;, e)\r\n        } else {\r\n            fmt.Printf(&quot;Send %d\\n&quot;, v)\r\n        }\r\n    } else {\r\n        fmt.Println(&quot;Creating ingest message failed&quot;)\r\n        os.Exit(1)\r\n    }\r\n}<\/pre>\n<p>You can find more information, including the source code of the solution and a Go library for interacting with the Predix Time Series API, in <a href=\"https:\/\/github.com\/Altoros\/go-predix-timeseries\" target=\"_blank\" rel=\"noopener noreferrer\">the GitHub repo<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Packaging_the_generator_into_a_snap\"><\/span>Packaging the generator into a snap<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For creating a snap, you need to <a href=\"https:\/\/snapcraft.io\/create\" target=\"_blank\" rel=\"noopener noreferrer\">install<\/a> the Snapcraft tool first. Then, declare the <a href=\"https:\/\/github.com\/Altoros\/go-predix-timeseries\/blob\/master\/examples\/go-predix-timeseries-demo\/sensor\/snapcraft.yaml\" target=\"_blank\" rel=\"noopener noreferrer\">snap configuration<\/a> that is provided below.<\/p>\n<p>The <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">snapcraft.yaml<\/code> file:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">name: predix-ts-sample\r\nversion: &quot;1.0&quot;\r\nsummary: &quot;This is a Predix Time-Series Sample Application.&quot;\r\ndescription: |\r\n A Predix Time-Series Sample Application using the Golang\r\n Predix bindings.\r\ngrade: stable\r\nconfinement: strict\r\n\r\napps:\r\n predix-ts-sample:\r\n   command: sensor\r\n   plugs: &#x5B;network]\r\n\r\nparts:\r\n predix-sensor-demo:\r\n   source: .\r\n   plugin: go<\/pre>\n<p>In this file, specify the name and the version of your snap. To build the snap, we also include a command for starting the application and its source code.<\/p>\n<p>Then, run the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">snapcraft<\/code> command, which compiles the source code and packages it into a snap.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-demo.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-demo.png\" alt=\"canonical-snaps-ge-predix-time-series-demo\" width=\"640\" class=\"aligncenter size-full wp-image-20158\" \/><\/a><\/p>\n<p>After that, you can publish your snap to a snap repository.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Releasing_the_snap\"><\/span>Releasing the snap<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Before releasing the snap, register an <a href=\"https:\/\/login.ubuntu.com\/one-redirect\" target=\"_blank\" rel=\"noopener noreferrer\">Ubuntu One account<\/a> and then run the following commands:<\/p>\n<pre style=\"padding-left: 30px;\"><code>$ snapcraft login\r\n$ snapcraft register predix-ts-sample<\/code><\/pre>\n<p><\/p>\n<p>Now, you should be able to push your application to a snap store.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-pushing.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-pushing.png\" alt=\"canonical-snaps-ge-predix-time-series-pushing\" width=\"640\" class=\"aligncenter size-full wp-image-20162\" \/><\/a><\/p>\n<p>Finally, you can release this snap.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-releasing.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-releasing.png\" alt=\"canonical-snaps-ge-predix-time-series-releasing\" width=\"640\" class=\"aligncenter size-full wp-image-20163\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Verifying_the_snap\"><\/span>Verifying the snap<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>You can check that the snap was really <a href=\"https:\/\/uappexplorer.com\/app\/predix-ts-sample\" target=\"_blank\" rel=\"noopener noreferrer\">published<\/a> in the uApp Explorer app store, and the <em>predix-ts-sample<\/em> application is now located there.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-publishing.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-publishing.png\" alt=\"canonical-snaps-ge-predix-time-series-publishing\" width=\"640\" class=\"aligncenter size-full wp-image-20161\" \/><\/a><\/p>\n<p>You can install this snap on your device using the following command:<\/p>\n<pre style=\"padding-left: 30px;\"><code>$ sudo snap install predix-ts-sample<\/code><\/pre>\n<p><\/p>\n<p>To run the snap, enter <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">predix-ts-sample<\/code> in the command line:<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-demo-running.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-demo-running.png\" alt=\"canonical-snaps-ge-predix-time-series-demo-running\" width=\"640\" class=\"aligncenter size-full wp-image-20160\" \/><\/a><\/p>\n<p>After providing all required configuration parameters, you will see the following output:<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-running-output.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/canonical-snaps-ge-predix-time-series-running-output.png\" alt=\"canonical-snaps-ge-predix-time-series-running-output\" width=\"640\" class=\"aligncenter size-full wp-image-20164\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Conclusions\"><\/span>Conclusions<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In this tutorial, we tried working with the new package management system from Canonical that is focused on the reliability and isolated execution of snaps. Device engineers can install multiple snaps and create a whole system from reusable building blocks almost without programming. Judging from our experience with snaps, developing and publishing them is quite easy, and the process is supported by good enough documentation.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/collecting-time-series-data-with-predix-a-golang-api-wrapper-included\/\">Collecting Time Series Data with Predix (a Golang API Wrapper Included)<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/using-time-series-in-a-spring-boot-app-on-predix\/\">Using Predix Time Series in a Spring Boot App<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/prototyping-a-greenhouse-management-system-with-node-red-and-predix-in-48-hours\/\">Prototyping a Greenhouse Management System with Node-RED and Predix in 48 Hours<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Snaps, designed by Canonical, are intended for packaging applications and their dependencies, along with the instructions for running these applications.<\/p>\n<p>&nbsp;<\/p>\n<p>Scenario<\/p>\n<p>We will use a data generator to create a sample data stream from a device to Predix. Our previous post provides more details about this generator.<\/p>\n<p>The sensor.go file:<\/p>\n<p>rand.Seed(time.Now().UTC().UnixNano())    [&#8230;]<\/p>\n","protected":false},"author":71,"featured_media":29342,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[873,117,647],"class_list":["post-20133","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-cloud-native","tag-iot","tag-predix"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Use Snap Packages when Collecting IoT Data with Predix Time Series | Altoros<\/title>\n<meta name=\"description\" content=\"In this article, we focus on how to write time-series data from your Linux environment to the Predix Time Series service using a snap.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use Snap Packages when Collecting IoT Data with Predix Time Series | Altoros\" \/>\n<meta property=\"og:description\" content=\"Snaps, designed by Canonical, are intended for packaging applications and their dependencies, along with the instructions for running these applications. &nbsp; Scenario We will use a data generator to create a sample data stream from a device to Predix. Our previous post provides more details about this generator. The sensor.go file: rand.Seed(time.Now().UTC().UnixNano())  [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-03T08:28:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-06-20T16:20:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/11\/canonical-snaps-ge-predix-time-series_v2.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Ilya Drabenia\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ilya Drabenia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/\",\"name\":\"How to Use Snap Packages when Collecting IoT Data with Predix Time Series | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/11\/canonical-snaps-ge-predix-time-series_v2.gif\",\"datePublished\":\"2016-11-03T08:28:15+00:00\",\"dateModified\":\"2019-06-20T16:20:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/48c2eaf6d86abc9fa945bc3860fa2dc2\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/11\/canonical-snaps-ge-predix-time-series_v2.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/11\/canonical-snaps-ge-predix-time-series_v2.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Use Snap Packages when Collecting IoT Data with Predix Time Series\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/48c2eaf6d86abc9fa945bc3860fa2dc2\",\"name\":\"Ilya Drabenia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/1108467-150x150.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/1108467-150x150.jpg\",\"caption\":\"Ilya Drabenia\"},\"description\":\"Ilya Drabenia is a Technical Lead at Altoros. He has broad experience in building software architectures, including design and development of complex solutions. Ilya is passionate about microservices, domain-driven design, as well as scalable and parallel algorithms. He also holds an MSc degree in Computer Science. See his profile on GitHub.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/ilya-drabenia\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Use Snap Packages when Collecting IoT Data with Predix Time Series | Altoros","description":"In this article, we focus on how to write time-series data from your Linux environment to the Predix Time Series service using a snap.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/","og_locale":"en_US","og_type":"article","og_title":"How to Use Snap Packages when Collecting IoT Data with Predix Time Series | Altoros","og_description":"Snaps, designed by Canonical, are intended for packaging applications and their dependencies, along with the instructions for running these applications. &nbsp; Scenario We will use a data generator to create a sample data stream from a device to Predix. Our previous post provides more details about this generator. The sensor.go file: rand.Seed(time.Now().UTC().UnixNano())  [...]","og_url":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/","og_site_name":"Altoros","article_published_time":"2016-11-03T08:28:15+00:00","article_modified_time":"2019-06-20T16:20:42+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/11\/canonical-snaps-ge-predix-time-series_v2.gif","type":"image\/gif"}],"author":"Ilya Drabenia","twitter_misc":{"Written by":"Ilya Drabenia","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/","url":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/","name":"How to Use Snap Packages when Collecting IoT Data with Predix Time Series | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/11\/canonical-snaps-ge-predix-time-series_v2.gif","datePublished":"2016-11-03T08:28:15+00:00","dateModified":"2019-06-20T16:20:42+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/48c2eaf6d86abc9fa945bc3860fa2dc2"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/11\/canonical-snaps-ge-predix-time-series_v2.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/11\/canonical-snaps-ge-predix-time-series_v2.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/how-to-use-snap-packages-when-collecting-iot-data-with-predix-time-series\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Use Snap Packages when Collecting IoT Data with Predix Time Series"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/48c2eaf6d86abc9fa945bc3860fa2dc2","name":"Ilya Drabenia","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/1108467-150x150.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/1108467-150x150.jpg","caption":"Ilya Drabenia"},"description":"Ilya Drabenia is a Technical Lead at Altoros. He has broad experience in building software architectures, including design and development of complex solutions. Ilya is passionate about microservices, domain-driven design, as well as scalable and parallel algorithms. He also holds an MSc degree in Computer Science. See his profile on GitHub.","url":"https:\/\/www.altoros.com\/blog\/author\/ilya-drabenia\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/20133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=20133"}],"version-history":[{"count":9,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/20133\/revisions"}],"predecessor-version":[{"id":44560,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/20133\/revisions\/44560"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/29342"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=20133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=20133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=20133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}