{"id":10690,"date":"2023-07-10T09:38:58","date_gmt":"2023-07-10T13:38:58","guid":{"rendered":"https:\/\/www.redline13.com\/blog\/?p=10690"},"modified":"2023-10-12T10:46:35","modified_gmt":"2023-10-12T14:46:35","slug":"jmeter-open-model-thread-group","status":"publish","type":"post","link":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/","title":{"rendered":"JMeter Open Model Thread Group"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">In previous blog posts we covered how the basic <\/span><em><a href=\"https:\/\/www.redline13.com\/blog\/2023\/06\/jmeter-thread-group\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Thread Group<\/span><\/a><\/em><span style=\"font-weight: 400;\"> is extended to perform more advanced functionality through the <\/span><em><a href=\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Custom Thread Groups<\/span><\/a><\/em><span style=\"font-weight: 400;\"> package, and other similar plugins such as the <\/span><a href=\"https:\/\/www.redline13.com\/blog\/2023\/06\/arrivals-thread-group\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\"><em>Arrivals Thread Group<\/em><\/span><\/a><span style=\"font-weight: 400;\">.\u00a0 One that we have yet to discuss is the <\/span><a href=\"https:\/\/jmeter.apache.org\/usermanual\/component_reference.html#Open_Model_Thread_Group\" target=\"_blank\" rel=\"noopener\"><i><span style=\"font-weight: 400;\">Open Model Thread Group<\/span><\/i><\/a><span style=\"font-weight: 400;\">.\u00a0 Presently, this built-in thread group is still marked as experimental, however it is available and used in current production releases in <a href=\"https:\/\/jmeter.apache.org\/usermanual\/index.html\" target=\"_blank\" rel=\"noopener\">JMeter<\/a>.<\/span><\/p>\n<p>Conceptually the <em>Open Model Thread Group<\/em> is similar to many of the <em>Custom Thread Groups<\/em> in that it allows the test designer to create a load profile defining sustained durations of throughput to a target test application. The primary difference is in the programmatic nature of how these profiles are defined.<\/p>\n<h3><a id=\"post-10690-_jorpw7dwjn19\"><\/a>Configuring the Open Model Thread Group<\/h3>\n<p>For the <em>Open Model Thread Group<\/em>, the basic configuration takes on the following format:<\/p>\n<pre><strong>rate(<em>n<\/em>\/sec) \u2026 random_arrivals(<em>x<\/em> min) \u2026 rate(<em>n<\/em>\/sec)<\/strong><\/pre>\n<p>Using the above notation, the <code>rate()<\/code> functions at the beginning and end specify a change in request rates, while the <code>random_arrivals()<\/code> function specifies duration over which this change should occur. Valid time units are \u201c<strong>sec<\/strong>\u201d or \u201c<strong>s<\/strong>\u201d for <em>seconds<\/em>, \u201c<strong>min<\/strong>\u201d or \u201c<strong>m<\/strong>\u201d for <em>minutes<\/em>, and \u201c<strong>hour<\/strong>\u201d or \u201c<strong>h<\/strong>\u201d for <em>hours<\/em>. Our configuration can have multiple lines, with each configuration line defining a sequential point in time for our test.<\/p>\n<figure id=\"attachment_10692\" class=\"wp-caption aligncenter\" style=\"max-width: 393px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10692\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-2.png\" alt=\"The load profiles for the Open Model Thread Group are defined using notational command expressions\" width=\"393\" height=\"196\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-2.png 393w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-2-300x150.png 300w\" sizes=\"auto, (max-width: 393px) 100vw, 393px\" \/><figcaption class=\"wp-caption-text\">The load profiles for the Open Model Thread Group are defined using notational command expressions.<\/figcaption><\/figure>\n<p>For example, we can specify the following configuration:<\/p>\n<pre><strong>rate(0\/s) random_arrivals(300 s) rate(10\/s)<\/strong>\n<strong>random_arrivals(3600 s)<\/strong>\n<strong>rate(10\/s) random_arrivals(300 s) rate(0\/s)<\/strong><\/pre>\n<p>This configuration will produce the following load profile:<\/p>\n<figure id=\"attachment_10693\" class=\"wp-caption aligncenter\" style=\"max-width: 2048px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10693\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-3.png\" alt=\"Example of an Open Model Thread Group load profile\" width=\"2048\" height=\"312\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-3.png 2048w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-3-300x46.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-3-1024x156.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-3-768x117.png 768w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-3-1536x234.png 1536w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-3-425x65.png 425w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><figcaption class=\"wp-caption-text\">Example of an Open Model Thread Group load profile.<\/figcaption><\/figure>\n<h3><a id=\"post-10690-_jux2skxvarn3\"><\/a>Advantages of the Open Model Thread Group<\/h3>\n<p><span style=\"font-weight: 400;\">When compared to similar profiling thread groups offered in the <\/span><i><span style=\"font-weight: 400;\">Custom Thread Groups<\/span><\/i><span style=\"font-weight: 400;\"> package for JMeter, the <\/span><i><span style=\"font-weight: 400;\">Open Model Thread Group<\/span><\/i><span style=\"font-weight: 400;\"> offers the ability for the load profile to be scripted.\u00a0 Highly complex load profiles can be defined in just a few lines of configuration.\u00a0 Here is an example using <\/span><a href=\"http:\/\/groovy-lang.org\/documentation.html\"><i><span style=\"font-weight: 400;\">Groovy<\/span><\/i><span style=\"font-weight: 400;\"> scripting<\/span><\/a><span style=\"font-weight: 400;\">:<\/span><\/p>\n<pre><b>${__groovy((1..10).collect {\u00a0<\/b>\n<b> \u00a0\u00a0\u00a0\"rate(\" + it*10 + \"\/sec) \" +\u00a0<\/b>\n<b> \u00a0\u00a0\u00a0\"random_arrivals(10 sec) \" +\u00a0<\/b>\n<b> \u00a0\u00a0\u00a0\"pause(1 sec)\"\u00a0<\/b>\n<b>}.join(\" \"))}<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Large changes in scalability achieved by small modifications.\u00a0 In addition, these load profiles can be made dynamic with the use of <\/span><i><span style=\"font-weight: 400;\">Groovy<\/span><\/i><span style=\"font-weight: 400;\"> scripting as shown in the example above.\u00a0 The <\/span><i><span style=\"font-weight: 400;\">Open Model Thread Group<\/span><\/i><span style=\"font-weight: 400;\"> is intelligent enough to be able to interpret many scripts and provide a profile view even when variables are used:<\/span><\/p>\n<figure id=\"attachment_10699\" class=\"wp-caption aligncenter\" style=\"max-width: 630px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10699 \" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/View-in-JMeter.png\" alt=\"View of Open Model Thread Group user interface within JMeter\" width=\"630\" height=\"403\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/View-in-JMeter.png 2262w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/View-in-JMeter-300x192.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/View-in-JMeter-1024x656.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/View-in-JMeter-768x492.png 768w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/View-in-JMeter-1536x984.png 1536w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/View-in-JMeter-2048x1312.png 2048w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/View-in-JMeter-425x272.png 425w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><figcaption class=\"wp-caption-text\">View of Open Model Thread Group user interface within JMeter.<\/figcaption><\/figure>\n<hr \/>\n<p>Did you know that RedLine13 offers a full-featured, time-limited free trial? <a href=\"https:\/\/www.redline13.com\/Service\" target=\"_blank\" rel=\"noopener\">Sign up now<\/a> and start testing today!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In previous blog posts we covered how the basic Thread Group is extended to perform more advanced functionality through the Custom Thread Groups package, and other similar plugins such as the Arrivals Thread Group.\u00a0 One that we have yet to discuss is the Open Model Thread Group.\u00a0 Presently, this built-in thread group is still marked as experimental, however it is available and used in current production releases in JMeter. Conceptually the Open Model Thread Group is<a class=\"more-link\" href=\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/\">Read More &rarr;<\/a><\/p>\n","protected":false},"author":11,"featured_media":10691,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,7],"tags":[283,628,634,318,633,424,630],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-dkoziel","4":"post-10690","6":"format-standard","7":"has-post-thumbnail","8":"category-blog","9":"category-jmeter","10":"post_tag-jmeter","11":"post_tag-jmeter-plugins-2","12":"post_tag-load-profiling","13":"post_tag-load-testing","14":"post_tag-open-model-thread-group","15":"post_tag-redline13","16":"post_tag-thread-groups"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JMeter Open Model Thread Group - RedLine13<\/title>\n<meta name=\"description\" content=\"JMeter Open Model Thread Group is similar to other JMeter Custom Thread Groups, but load profiles are defined programmatically.\" \/>\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.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JMeter Open Model Thread Group - RedLine13\" \/>\n<meta property=\"og:description\" content=\"JMeter Open Model Thread Group is similar to other JMeter Custom Thread Groups, but load profiles are defined programmatically.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/\" \/>\n<meta property=\"og:site_name\" content=\"RedLine13\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-10T13:38:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-12T14:46:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Koziel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Koziel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/\"},\"author\":{\"name\":\"David Koziel\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/51d282221e3230ab35f964f98ada9b20\"},\"headline\":\"JMeter Open Model Thread Group\",\"datePublished\":\"2023-07-10T13:38:58+00:00\",\"dateModified\":\"2023-10-12T14:46:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/\"},\"wordCount\":414,\"publisher\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\"},\"keywords\":[\"JMeter\",\"JMeter Plugins\",\"Load Profiling\",\"Load Testing\",\"Open Model Thread Group\",\"RedLine13\",\"Thread Groups\"],\"articleSection\":[\"Blog\",\"JMeter\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/\",\"url\":\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/\",\"name\":\"JMeter Open Model Thread Group - RedLine13\",\"isPartOf\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#website\"},\"datePublished\":\"2023-07-10T13:38:58+00:00\",\"dateModified\":\"2023-10-12T14:46:35+00:00\",\"description\":\"JMeter Open Model Thread Group is similar to other JMeter Custom Thread Groups, but load profiles are defined programmatically.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.redline13.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JMeter Open Model Thread Group\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#website\",\"url\":\"https:\/\/www.redline13.com\/blog\/\",\"name\":\"RedLine13\",\"description\":\"(Almost) Free Load Testing in the Cloud\",\"publisher\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.redline13.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\",\"name\":\"RedLine13\",\"url\":\"https:\/\/www.redline13.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg\",\"contentUrl\":\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg\",\"width\":300,\"height\":68,\"caption\":\"RedLine13\"},\"image\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/51d282221e3230ab35f964f98ada9b20\",\"name\":\"David Koziel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2babf644e0993fc86893c24d7525f1e3be114a8746c01249797f25587ae1697a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2babf644e0993fc86893c24d7525f1e3be114a8746c01249797f25587ae1697a?s=96&d=mm&r=g\",\"caption\":\"David Koziel\"},\"url\":\"https:\/\/www.redline13.com\/blog\/author\/dkoziel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JMeter Open Model Thread Group - RedLine13","description":"JMeter Open Model Thread Group is similar to other JMeter Custom Thread Groups, but load profiles are defined programmatically.","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.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/","og_locale":"en_US","og_type":"article","og_title":"JMeter Open Model Thread Group - RedLine13","og_description":"JMeter Open Model Thread Group is similar to other JMeter Custom Thread Groups, but load profiles are defined programmatically.","og_url":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/","og_site_name":"RedLine13","article_published_time":"2023-07-10T13:38:58+00:00","article_modified_time":"2023-10-12T14:46:35+00:00","og_image":[{"width":400,"height":300,"url":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2023\/07\/word-image-10690-1.png","type":"image\/png"}],"author":"David Koziel","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Koziel","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/#article","isPartOf":{"@id":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/"},"author":{"name":"David Koziel","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/51d282221e3230ab35f964f98ada9b20"},"headline":"JMeter Open Model Thread Group","datePublished":"2023-07-10T13:38:58+00:00","dateModified":"2023-10-12T14:46:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/"},"wordCount":414,"publisher":{"@id":"https:\/\/www.redline13.com\/blog\/#organization"},"keywords":["JMeter","JMeter Plugins","Load Profiling","Load Testing","Open Model Thread Group","RedLine13","Thread Groups"],"articleSection":["Blog","JMeter"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/","url":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/","name":"JMeter Open Model Thread Group - RedLine13","isPartOf":{"@id":"https:\/\/www.redline13.com\/blog\/#website"},"datePublished":"2023-07-10T13:38:58+00:00","dateModified":"2023-10-12T14:46:35+00:00","description":"JMeter Open Model Thread Group is similar to other JMeter Custom Thread Groups, but load profiles are defined programmatically.","breadcrumb":{"@id":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.redline13.com\/blog\/2023\/07\/jmeter-open-model-thread-group\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.redline13.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JMeter Open Model Thread Group"}]},{"@type":"WebSite","@id":"https:\/\/www.redline13.com\/blog\/#website","url":"https:\/\/www.redline13.com\/blog\/","name":"RedLine13","description":"(Almost) Free Load Testing in the Cloud","publisher":{"@id":"https:\/\/www.redline13.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.redline13.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.redline13.com\/blog\/#organization","name":"RedLine13","url":"https:\/\/www.redline13.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg","contentUrl":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg","width":300,"height":68,"caption":"RedLine13"},"image":{"@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/51d282221e3230ab35f964f98ada9b20","name":"David Koziel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2babf644e0993fc86893c24d7525f1e3be114a8746c01249797f25587ae1697a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2babf644e0993fc86893c24d7525f1e3be114a8746c01249797f25587ae1697a?s=96&d=mm&r=g","caption":"David Koziel"},"url":"https:\/\/www.redline13.com\/blog\/author\/dkoziel\/"}]}},"_links":{"self":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/10690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/comments?post=10690"}],"version-history":[{"count":5,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/10690\/revisions"}],"predecessor-version":[{"id":10706,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/10690\/revisions\/10706"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/media\/10691"}],"wp:attachment":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/media?parent=10690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/categories?post=10690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/tags?post=10690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}