All new features, changes, deprecations, and breaking changes in the United Manufacturing Hub are now documented in our Discord channel.
Join our community to stay up to date with the latest developments!
This is the multi-page printable view of this section. Click here to print.
All new features, changes, deprecations, and breaking changes in the United Manufacturing Hub are now documented in our Discord channel.
Join our community to stay up to date with the latest developments!
Welcome to United Manufacturing Hub version 0.9.15! In this release we added support for the UNS data model, by introducing a new microservice, Data Bridge.
For a complete list of changes, refer to the release notes.
Data-bridge is a microservice specifically tailored to adhere to the UNS data model. It consumes topics from a message broker, translates them to the proper format and publishes them to the other message broker.
It can consume from and publish to both Kafka and MQTT brokers, whether they are local or remote.
It’s main purpose is to merge messages from multiple topics into a single topic, using the message key to identify the source topic.
We updated the following dependencies:
Welcome to United Manufacturing Hub version 0.9.14! In this release we changed the Kafka broker from Apache Kafka to RedPanda, which is a Kafka-compatible event streaming platform. We also started migrating to a different kafka library in our micoservices, which will allow full ARM support in the future. Finally, we tweaked the overall resource usage of the United Manufacturing Hub to improve performance and efficiency, along with some bug fixes.
For a complete list of changes, refer to the release notes.
RedPanda is a Kafka-compatible event streaming platform. It is built with modern hardware in mind and utilizes multi-core CPUs efficiently, which can result in better performance compared to Kafka. RedPanda also offers lower latency and higher throughput, making it a better fit for real-time use cases in IIoT applications. Additionally, RedPanda has a simpler setup and management process compared to Kafka, which can save time and resources for development teams. Finally, RedPanda is fully compatible with Kafka’s API, allowing for a seamless transition for existing Kafka users.
Overall, Redpanda can provide improved performance and efficiency for IIoT applications that require real-time data processing and management with a lower setup and management cost.
We started migrating our microservices to use the Sarama Kafka library. This library is written in Go and is fully compatible with RedPanda. This change will allow us to support ARM-based devices in the future, which will be useful for edge computing use cases. Addedd bonus is that Sarama is faster and requires less memory than the previous library.
For now we only migrated the following microservices:
With this release we tweaked the resource requests of each default component of the United Manufacturing Hub to respect the minimum requirements of 4 cores and 8GB of RAM. This allowed us to increase the memory allocated for the MQTT broker, resulting in solving the common Out Of Memory issue that caused the broker to restart.
Be sure to follow the upgrade guide to adjust your resources accordingly.
The following table shows the new resource requests and limits when deploying the United Manufacturing Hub with the default configuration or with all the components enabled. CPU values are expressed in millicores and memory values are expressed in mebibytes.
Resource | Requests | Limits |
---|---|---|
CPU (default values) | 1080m (27%) | 1890m (47%) |
Memory (default values) | 1650Mi (21%) | 2770Mi (35%) |
CPU (all components) | 2002m (50%) | 2730m (68%) |
Memory (all components) | 2873Mi (36%) | 3578Mi (45%) |
The requested resources are the ones immediately allocated to the container when it starts, and the limits are the maximum amount of resources that the container can (but is not forced to) use. For more information about Kubernetes resources, refer to the official documentation.
We moved our container registry from Docker Hub to GitHub Container Registry. This change won’t affect the way you deploy the United Manufacturing Hub, but it will allow us to better manage our container images and provide a better experience for our developers. For the time being, we will continue to publish our images to Docker Hub, but we will eventually deprecate the old registry.
serviceType
field.statetable
table after insertion.Welcome to United Manufacturing Hub version 0.9.13! This is a minor release that only updates the new metrics feature.
For a complete list of changes, refer to the release notes.
Welcome to United Manufacturing Hub version 0.9.12! Read on to learn about the new features of the UMH Datasource V2 plugin for Grafana, Redis running in standalone mode, and more.
For a complete list of changes, refer to the release notes.
Grafana has been upgraded to version 9.4.3. This introduces new search and navigation features, a redesigned details section of the logs, and a new data source connection page.
Head over to the Grafana release notes to learn more about the new features.
We have upgraded Node-RED to version 3.0.2. Checkout the Node-RED release notes for more information.
The latest update to the datasource has incorporated typesafe JSON parsing, significantly enhancing the overall performance and dependability of the plugin. This implementation ensures that the parsing process strictly adheres to predefined data types, eliminating the possibility of unexpected errors or data corruption that can occur with loosely-typed JSON parsing.
Redis, the service used for caching, is now deployed in standalone mode. This change introduces these benefits:
That being said, it’s important to note that a master-replica topology with Sentinel provides higher availability and failover capabilities than standalone mode.
The MQTT Broker, Kafka Broker, and Kafka Console are now exposed by a LoadBalancer Service, along with the Database, Grafana and Node-RED. This change makes it easier to access these services from outside the cluster, as they are now accessible via the IP address of the cluster.
When installing the United Manufacturing Hub locally, the cluster ports are
automatically mapped to the host ports. This means that you can access the
services from your browser by using localhost
and the port number.
Read more about connecting to the services from outside the cluster in the related documentation.
We introduced an optional microservice that can be used to collect metrics
about the system, like OS, CPU, memory, hostname and average load. These metrics
are then sent to our server for analysis, and are completely anonymous. This
microservice is enabled by default, but can be disabled by setting the
_000_commonConfig.metrics.enabled
value to false
in the values.yaml
file.
{
"OS":"linux",
"Arch":"amd64",
"Memory":{
"total":16435666944,
"available":11555106816,
"used":4404510720,
"usedPercent":26.798490958761544,
"free":574394368,
"active":3613691904,
"inactive":10843209728,
"wired":0,
"laundry":0,
"buffers":588361728,
"cached":10868400128,
"writeback":0,
"dirty":122880,
"writebacktmp":0,
"shared":155168768,
"slab":978030592,
"sreclaimable":766824448,
"sunreclaim":211206144,
"pagetables":32157696,
"swapcached":17887232,
"commitlimit":12512800768,
"committedas":16789483520,
"hightotal":0,
"highfree":0,
"lowtotal":0,
"lowfree":0,
"swaptotal":4294967296,
"swapfree":4165865472,
"mapped":1214676992,
"vmalloctotal":35184372087808,
"vmallocused":60112896,
"vmallocchunk":0,
"hugepagestotal":0,
"hugepagesfree":0,
"hugepagesize":2097152
},
"CPUInfo":[
{
"cpu":0,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"0",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":1,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"0",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":2,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"1",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":3,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"1",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":4,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"2",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":5,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"2",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":6,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"3",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":7,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"3",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":8,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"4",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":9,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"4",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":10,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"5",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":11,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"5",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":12,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"6",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":13,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"6",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":14,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"7",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
},
{
"cpu":15,
"vendorId":"AuthenticAMD",
"family":"25",
"model":"80",
"stepping":0,
"physicalId":"0",
"coreId":"7",
"cores":1,
"modelName":"AMD Ryzen 9 5900HX with Radeon Graphics",
"mhz":3293.73,
"cacheSize":512,
"flags":[
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clflush",
"mmx",
"fxsr",
"sse",
"sse2",
"ht",
"syscall",
"nx",
"mmxext",
"fxsr_opt",
"pdpe1gb",
"rdtscp",
"lm",
"constant_tsc",
"rep_good",
"nopl",
"tsc_reliable",
"nonstop_tsc",
"cpuid",
"extd_apicid",
"pni",
"pclmulqdq",
"ssse3",
"fma",
"cx16",
"sse4_1",
"sse4_2",
"movbe",
"popcnt",
"aes",
"xsave",
"avx",
"f16c",
"rdrand",
"hypervisor",
"lahf_lm",
"cmp_legacy",
"svm",
"cr8_legacy",
"abm",
"sse4a",
"misalignsse",
"3dnowprefetch",
"osvw",
"topoext",
"perfctr_core",
"ssbd",
"ibrs",
"ibpb",
"stibp",
"vmmcall",
"fsgsbase",
"bmi1",
"avx2",
"smep",
"bmi2",
"erms",
"invpcid",
"rdseed",
"adx",
"smap",
"clflushopt",
"clwb",
"sha_ni",
"xsaveopt",
"xsavec",
"xgetbv1",
"xsaves",
"clzero",
"xsaveerptr",
"arat",
"npt",
"nrip_save",
"tsc_scale",
"vmcb_clean",
"flushbyasid",
"decodeassists",
"pausefilter",
"pfthreshold",
"v_vmsave_vmload",
"umip",
"vaes",
"vpclmulqdq",
"rdpid",
"fsrm"
],
"microcode":"0xffffffff"
}
],
"Host":{
"hostname":"7bd935ddb2b727e7ec31c2b17f238cd68a05eddae3de2f3f30df60128cf06e1d82b4643d6a1dfd54310fbc00d0f8e248a4ea2726b7e84bf1a420330d527253ee",
"uptime":15610,
"bootTime":1680249794,
"procs":1,
"os":"linux",
"platform":"alpine",
"platformFamily":"alpine",
"platformVersion":"3.17.2",
"kernelVersion":"5.15.90.1-microsoft-standard-WSL2",
"kernelArch":"x86_64",
"virtualizationSystem":"docker",
"virtualizationRole":"guest",
"hostid":"48f4b69b63d90af6691ee87361c0419af89c13d4504c4c85329599f5e0ea075e1668ed4788d6caaa2ffc299ca461b0d46e32e82c0c5405b23b29dcf8e5a8a1dc"
},
"Load":{
"load1":0.05,
"load5":0.19,
"load15":0.49
}
}
We replaced confluent kafka with Sarama in the MQTT-Kafka Bridge. This increased the performance & stability and is a first step towards ARM compatibility.
We have added automated end-to-end testing to the United Manufacturing Hub. This includes testing the installation and the upgrading of the United Manufacturing Hub, as well as testing the functionality of the microservices.
The Cameraconnect microservice has been deprecated and removed from the United Manufacturing Hub. It’s development has been taken over by Anticipate.
The blob storage service has been deprecated and removed from the United Manufacturing Hub. This includes the MinIO Operator and Tenant, and the MQTT to Blob microservice.
Many fixes have been made to the United Manufacturing Hub, including known issues for Sensorconnect and MQTT Bridge.
Welcome to United Manufacturing Hub version 0.9.11! This patch introduces only minor bugfixes for Factoryinput and Sensorconnect.
For a complete list of changes, refer to the release notes.
Welcome to United Manufacturing Hub version 0.9.10! In this release, we have changed the MQTT broker to HiveMQ and the Kafka console to RedPanda Console. A new OPC UA server simulator has been added, along with a new API service to connect to Factoryinsight from outside the cluster, especially tailored for usage with Tulip. Grafana now comes with presinstalled plugins and datasources, and the UMH datasource V2 supports grouping of custom tags.
For a complete list of changes, refer to the release notes.
The MQTT broker has been changed from VerneMQ to HiveMQ. This change won’t affect the end user, but it will allow us to better maintain the MQTT broker in the future.
Read our comparison of MQTT brokers to learn more about the differences between VerneMQ and HiveMQ.
The Kowl project as been acquired by RedPanda and is now called RedPanda Console. The functionalities are mostly the same.
A new data simulator for OPC UA has been added. It is based on the OPC/UA simulator by Amine, and it allows you to simulate OPC UA servers in order to test the United Manufacturing Hub.
Grafana now comes with the following plugins preinstalled:
The UMH datasource V2 now supports grouping of custom tags. This allows you to group processValues by a common prefix, and then use the group name as a variable in Grafana.
A new API service has been added to connect to Factoryinsight from outside the cluster. This service is especially tailored for usage with Tulip, and it allows you to connect to Factoryinsight from outside the cluster.
Read more about the Tulip connector.
Welcome to United Manufacturing Hub version 0.9.9! This version introduces the PackML-MQTT-Simulator, to simulate a PackML state machine and publish the state changes to MQTT. It also includes new liveness probes for some of the Pods and minor fixes.
For a complete list of changes, refer to the release notes.
The PackML-MQTT-Simulator is is a virtual line that interfaces using PackML implemented over MQTT. It allows you to simulate a PackML state machine and publish the state changes to MQTT.
Welcome to United Manufacturing Hub version 0.9.8! Read on to learn about the new Factoryinsight API V2 and the related datasource plugin for Grafana with support for historian functionalities.
For a complete list of changes, refer to the release notes.
The new v2
API of Factoryinsight now supports historian functionalities. This
means that you can now query the history of your data and visualize it in
Grafana. The new datasource plugin for Grafana supports the Time Bucket
Aggregation, which allows you to aggregate your data by values like the average,
minimum or maximum.
Welcome to United Manufacturing Hub version 0.2!
It this release we have some exiting changes to the Management Console!
Centralized all initial installation and continuous updating processes (Docker, k3s, helm, flatcar, …) to interact solely with management.umh.app. This ensures that only one domain is necessary to be allowed in the firewall for these activities.
Re-enabled the updating functionality, which is now working as expected. You will need to manually update your instances’ Management Companion to the latest version to ensure compatibility. To do so, from you UMH instance, run the following command:
sudo $(which kubectl) set image statefulset mgmtcompanion mgmtcompanion=management.umh.app/oci/united-manufacturing-hub/mgmtcompanion:0.2.8 -n mgmtcompanion --kubeconfig /etc/rancher/k3s/k3s.yaml
Welcome to United Manufacturing Hub version 0.1! This marks the first release of the United Manufacturing Hub, even though it’s been available for a while now.
You might have already seen other versions (probably the ones in the archive), but those were only referring to the UMH Helm chart. This new versioning is meant to include the entire United Manufacturing Hub, as defined in the architecture.
So from now on, the United Manufacturing Hub will be versioned as a whole, and will include the Management Console, the Data Infrastructure, and the Device & Container Infrastructure, along with all the other bits and pieces that make up the United Manufacturing Hub.
There are many features already available in the Management Console, so we’ll only list the most important ones here.