{"id":50409,"date":"2019-06-05T06:00:19","date_gmt":"2019-06-05T04:00:19","guid":{"rendered":"http:\/\/smeupnew.it\/magazine\/blog\/apm-open-source-glowroot\/"},"modified":"2021-10-11T17:49:50","modified_gmt":"2021-10-11T15:49:50","slug":"apm-open-source-glowroot","status":"publish","type":"post","link":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/","title":{"rendered":"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot &#8211; parte 2"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling gradient-container-1\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1144px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><p>Se ti sei perso la scorsa puntata di introduzione ai performance monitoring tools <a href=\"https:\/\/www.smeup.com\/magazine\/blog\/performance-monitoring-tool-parte-1\/\" target=\"_blank\" rel=\"noopener\">leggi qui<\/a>.<\/p>\n<h2>Glowroot<\/h2>\n<p><span style=\"font-weight: 400\">In questo articolo e nei due seguenti dedicati all'argomento dei performance monitoring tool vedremo un esempio di <\/span><b>APM open source<\/b><span style=\"font-weight: 400\"> utilizzabile per applicazioni web Java J2EE. Sia Web.UP che Sme.UP Provider versione web sono applicazioni di questo genere, quindi tale APM pu\u00f2 gratuitamente funzionare su di esse per il monitoring delle performance. <\/span><\/p>\n<p><span style=\"font-weight: 400\">L'APM in questione si chiama <\/span><b>Glowroot<\/b><span style=\"font-weight: 400\"> (<\/span><a href=\"https:\/\/glowroot.org\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">https:\/\/glowroot.org<\/span><\/a><span style=\"font-weight: 400\">), ha un sito demo ben fatto e inoltre il suo codice \u00e8 facilmente visualizzabile e scaricabile da <\/span><a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">https:\/\/github.com<\/span><\/a><span style=\"font-weight: 400\">. L'installazione \u00e8 semplice e veloce. <\/span><\/p>\n<h2>Breve introduzione alla profilazione del codice<\/h2>\n<p><span style=\"font-weight: 400\">Se un programmatore volesse analizzare i tempi di esecuzione di un programma da lui scritto la prima e pi\u00f9 semplice operazione che potrebbe fare sarebbe quella di inserire un'istruzione di calcolo dell'ora esatta (diciamo con una precisione fino ai millisecondi) all'inizio del suo programma, una di calcolo dell'ora esatta alla fine del programma e una di stampa nei log del tempo di esecuzione ottenuto come sottrazione del primo risultato dal secondo.  <\/span><\/p>\n<p><span style=\"font-weight: 400\">In linguaggio Java, per analizzare le performance del metodo X di una classe A, potrebbe scrivere una cosa di questo genere:<\/span><\/p>\n<p><span style=\"font-weight: 400\">public void metodoX() <\/span><\/p>\n<p><span style=\"font-weight: 400\">Dall'analisi dei log potrebbe estrarre statistiche sui tempi di esecuzione del metodo: quante volte viene eseguito, quanto tempo impiega in media, il suo minimo, il suo massimo, etc\u2026. <\/span><\/p>\n<p><span style=\"font-weight: 400\">L'inserimento di istruzioni di monitoraggio potrebbe essere scritto in maniere alternative e pi\u00f9 eleganti, ad esempio lanciando eventi oppure tramite AOP (programmazione orientata agli aspetti) o intervenendo direttamente sul binario o sul codice compilato\u2026<\/span><\/p>\n<p><span style=\"font-weight: 400\">Diciamo che la <\/span><b>profilazione del codice<\/b><span style=\"font-weight: 400\"> (in inglese conosciuto come <\/span><b>code profiling<\/b><span style=\"font-weight: 400\">) \u00e8 proprio il concetto che abbiamo esemplificato: al codice viene aggiunto codice per monitorarlo (tecnicamente questa aggiunta si definisce <\/span><b>code instrumentation<\/b><span style=\"font-weight: 400\">). E' come se il codice venisse marcato in determinati punti. A questi marker si pu\u00f2 associare la misurazione del tempo ma non solo. Pu\u00f2 essere registrato anche il valore della CPU utilizzata, le allocazioni di memoria, la garbage collection, \u2026 <\/span><\/p>\n<p><span style=\"font-weight: 400\">A seconda del numero dei marker e delle grandezze registrate un profilatore pu\u00f2 incidere molto o poco sui tempi di esecuzione di un'applicazione. Potrebbe anche far girare un'applicazione molte volte pi\u00f9 lentamente di quanto normalmente farebbe. Ma in caso di problemi di perfomance un caso del genere potrebbe essere comunque utile per aiutare ad analizzare la situazione, ad esempio in un ambiente di test utilizzato esclusivamente dallo sviluppatore per comprendere nel dettaglio cosa genera il problema. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Glowroot possiede una instrumentation di default per moltissime delle librerie e dei framework utilizzati nel mondo Java J2ee (es: hibernate, JAX-RS, JAX-WS, JMS, JSF, JSP, Spring, etc\u2026). Questo significa che se un'applicazione Java utilizza tali librerie i marker sono gi\u00e0 presenti e attivi. Inoltre Glowroot permette la instrumentation su qualsiasi classe Java che gira nell'applicazione tramite una semplice pagina web di configurazione. <\/span><\/p>\n<p><strong>Chiara Zambelli<br \/>\n<\/strong><em>Responsabile CI\/CD \u2013 smeup<br \/>\n<\/em><a href=\"https:\/\/it.linkedin.com\/in\/chiara-zambelli\" target=\"_blank\" rel=\"noopener\">My LinkedIn Profile<\/a><\/p>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo e nei due seguenti dedicati all\u2019argomento dei performance monitoring tool vedremo un esempio di APM open source utilizzabile per applicazioni web Java J2EE. L\u2019APM in questione si chiama Glowroot.<\/p>\n","protected":false},"author":1,"featured_media":52675,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7144],"tags":[6161,4007,6163,6164,6166,6167,6168,6169,6035,6170,6171,5576,4431],"class_list":["post-50409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-erp","tag-aop","tag-applicazione-web","tag-applicazione-web-java-j2ee","tag-code-instrumentation","tag-cpu","tag-glowroot","tag-java","tag-java-j2ee","tag-performance-monitoring-tool","tag-performance-monitoring-tools","tag-profilazione-del-codice","tag-sme-up-provider","tag-web-up"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot<\/title>\n<meta name=\"description\" content=\"In questo articolo vedremo un esempio di APM open source utilizzabile per applicazioni web Java J2EE. L\u2019APM in questione si chiama Glowroot.\" \/>\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.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot\" \/>\n<meta property=\"og:description\" content=\"In questo articolo vedremo un esempio di APM open source utilizzabile per applicazioni web Java J2EE. L\u2019APM in questione si chiama Glowroot.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/\" \/>\n<meta property=\"og:site_name\" content=\"Magazine\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-05T04:00:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-11T15:49:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/06\/glowroot.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1335\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"smeup\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"smeup\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/\"},\"author\":{\"name\":\"smeup\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\"},\"headline\":\"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot &#8211; parte 2\",\"datePublished\":\"2019-06-05T04:00:19+00:00\",\"dateModified\":\"2021-10-11T15:49:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/\"},\"wordCount\":678,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/06\\\/glowroot.jpg\",\"keywords\":[\"aop\",\"applicazione web\",\"applicazione web Java J2EE\",\"code instrumentation\",\"cpu\",\"glowroot\",\"java\",\"Java J2EE\",\"performance monitoring tool\",\"performance monitoring tools\",\"profilazione del codice\",\"Sme.UP Provider\",\"Web.UP\"],\"articleSection\":[\"ERP\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/\",\"name\":\"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/06\\\/glowroot.jpg\",\"datePublished\":\"2019-06-05T04:00:19+00:00\",\"dateModified\":\"2021-10-11T15:49:50+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\"},\"description\":\"In questo articolo vedremo un esempio di APM open source utilizzabile per applicazioni web Java J2EE. L\u2019APM in questione si chiama Glowroot.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/06\\\/glowroot.jpg\",\"contentUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/06\\\/glowroot.jpg\",\"width\":1600,\"height\":1335,\"caption\":\"smeup glowroot\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/apm-open-source-glowroot\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot &#8211; parte 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/\",\"name\":\"Magazine\",\"description\":\"smeup\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\",\"name\":\"smeup\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"caption\":\"smeup\"},\"sameAs\":[\"https:\\\/\\\/www.smeup.com\"],\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot","description":"In questo articolo vedremo un esempio di APM open source utilizzabile per applicazioni web Java J2EE. L\u2019APM in questione si chiama Glowroot.","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.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/","og_locale":"it_IT","og_type":"article","og_title":"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot","og_description":"In questo articolo vedremo un esempio di APM open source utilizzabile per applicazioni web Java J2EE. L\u2019APM in questione si chiama Glowroot.","og_url":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/","og_site_name":"Magazine","article_published_time":"2019-06-05T04:00:19+00:00","article_modified_time":"2021-10-11T15:49:50+00:00","og_image":[{"width":1600,"height":1335,"url":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/06\/glowroot.jpg","type":"image\/jpeg"}],"author":"smeup","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"smeup","Tempo di lettura stimato":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/#article","isPartOf":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/"},"author":{"name":"smeup","@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7"},"headline":"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot &#8211; parte 2","datePublished":"2019-06-05T04:00:19+00:00","dateModified":"2021-10-11T15:49:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/"},"wordCount":678,"commentCount":0,"image":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/#primaryimage"},"thumbnailUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/06\/glowroot.jpg","keywords":["aop","applicazione web","applicazione web Java J2EE","code instrumentation","cpu","glowroot","java","Java J2EE","performance monitoring tool","performance monitoring tools","profilazione del codice","Sme.UP Provider","Web.UP"],"articleSection":["ERP"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/","url":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/","name":"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot","isPartOf":{"@id":"https:\/\/www.smeup.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/#primaryimage"},"image":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/#primaryimage"},"thumbnailUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/06\/glowroot.jpg","datePublished":"2019-06-05T04:00:19+00:00","dateModified":"2021-10-11T15:49:50+00:00","author":{"@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7"},"description":"In questo articolo vedremo un esempio di APM open source utilizzabile per applicazioni web Java J2EE. L\u2019APM in questione si chiama Glowroot.","breadcrumb":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/#primaryimage","url":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/06\/glowroot.jpg","contentUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/06\/glowroot.jpg","width":1600,"height":1335,"caption":"smeup glowroot"},{"@type":"BreadcrumbList","@id":"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.smeup.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot &#8211; parte 2"}]},{"@type":"WebSite","@id":"https:\/\/www.smeup.com\/magazine\/#website","url":"https:\/\/www.smeup.com\/magazine\/","name":"Magazine","description":"smeup","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.smeup.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7","name":"smeup","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","caption":"smeup"},"sameAs":["https:\/\/www.smeup.com"],"url":"https:\/\/www.smeup.com\/magazine\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/comments?post=50409"}],"version-history":[{"count":3,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50409\/revisions"}],"predecessor-version":[{"id":55502,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50409\/revisions\/55502"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/media\/52675"}],"wp:attachment":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/media?parent=50409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/categories?post=50409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/tags?post=50409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}