Here you can find scripts for deployment on different Kubernetes platforms.
thingsboard / thingsboard-ce-k8s Goto Github PK
View Code? Open in Web Editor NEWThingsBoard Community Edition Kubernetes scripts and docs
License: Apache License 2.0
ThingsBoard Community Edition Kubernetes scripts and docs
License: Apache License 2.0
How to scale tb-node in monolith type? When i scale tb-node to 2 or 3 pod, telemetry not update any more.
There's still a lot of components in here (more than just what is covered by #31) that ought to be addressed. The K8s 1.22 release notes list all the beta APIs that are being removed. Several of these are required for this project to function properly.
routes.yml in https://github.com/thingsboard/thingsboard-ce-k8s/tree/master/minikube
error: unable to recognize "routes_original.yml": no matches for kind "Ingress" in version "networking.k8s.io/v1beta1"
The extensions/v1beta1 and networking.k8s.io/v1beta1 API versions of Ingress is no longer served as of v1.22.
I've deployed TB in GKE and TB Edge following the instructions on the official website, but Edge won't connect:
2022-11-18 16:53:28,542 [main] INFO o.t.edge.rpc.EdgeGrpcClient - [287b07ab-d594-49c1-04e1-1f8b4da7dc5b] Sending a connect request to the TB!
2022-11-18 16:53:52,097 [cloud-manager-reconnect-52-thread-1] INFO o.t.s.s.cloud.CloudManagerService - Trying to reconnect due to the error: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception!
2022-11-18 16:53:52,105 [cloud-manager-reconnect-52-thread-1] INFO o.t.edge.rpc.EdgeGrpcClient - [287b07ab-d594-49c1-04e1-1f8b4da7dc5b] Sending a connect request to the TB!
2022-11-18 16:53:55,097 [cloud-manager-reconnect-52-thread-1] INFO o.t.s.s.cloud.CloudManagerService - Trying to reconnect due to the error: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception!
I suspect that it has to be with the deployment config files, since tb-node container defines port 7070, but then there is no service listening on that port. only 8080.
https://github.com/thingsboard/thingsboard-ce-k8s/blob/master/gcp/microservices/tb-services.yml#L135
Am I missing anything?
On the new minikube deployment, while trying to deploy cassandra using ./k8s-install-tb.sh
, I get to the point where ThingsBoard installs the cql
file in Cassandra:
Installing Cassandra DataBase schema part: schema-ts.cql
but it hangs, and after a long while, I get these logs in the cassandra pod:
cassandra 20:47:19.18
cassandra 20:47:19.18 Welcome to the Bitnami cassandra container
cassandra 20:47:19.18 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-cassandra
cassandra 20:47:19.18 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-cassandra/issues
cassandra 20:47:19.18
cassandra 20:47:19.19 INFO ==> ** Starting Cassandra setup **
cassandra 20:47:19.21 INFO ==> Validating settings in CASSANDRA_* env vars..
cassandra 20:47:19.21 WARN ==> You set the environment variable CASSANDRA_PASSWORD=cassandra. This is the default value when bootstrapping Cassandra and should not be used in production environments.
cassandra 20:47:19.29 INFO ==> Initializing Cassandra database...
cassandra 20:47:19.56 INFO ==> Deploying Cassandra from scratch
cassandra 20:47:19.56 INFO ==> Starting Cassandra
cassandra 20:47:19.57 INFO ==> Checking that it started up correctly
cassandra 20:47:39.71 INFO ==> Found CQL startup log line
grep: Unmatched ( or \(
grep: Unmatched ( or \(
grep: Unmatched ( or \(
grep: Unmatched ( or \(
grep: Unmatched ( or \(
cassandra 20:48:16.60 ERROR ==> Cassandra failed to start up
And I get these logs in tb-db-setup
.
2021-11-08 20:43:28,951 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.0.13.Final
2021-11-08 20:43:30,866 [background-preinit] WARN o.s.h.c.j.Jackson2ObjectMapperBuilder - For Jackson Kotlin classes support please add "com.fasterxml.jackson.module:jackson-module-kotlin" to the classpath
2021-11-08 20:43:33,782 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
2021-11-08 20:43:33,783 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2021-11-08 20:43:34,926 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 1093ms. Found 39 JPA repository interfaces.
2021-11-08 20:43:34,938 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
2021-11-08 20:43:34,938 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2021-11-08 20:43:35,016 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 78ms. Found 1 JPA repository interfaces.
2021-11-08 20:43:35,021 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
2021-11-08 20:43:35,021 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2021-11-08 20:43:35,053 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 32ms. Found 1 JPA repository interfaces.
2021-11-08 20:43:36,211 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
2021-11-08 20:43:36,215 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2021-11-08 20:43:36,353 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.rule.RuleChainRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,356 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.rule.RuleNodeRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,356 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sqlts.latest.TsKvLatestRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,360 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.relation.RelationRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,361 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.rule.RuleNodeStateRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,363 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.oauth2.deprecated.OAuth2ClientRegistrationInfoRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,363 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.resource.TbResourceRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,364 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.oauth2.OAuth2ClientRegistrationTemplateRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,364 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.tenant.TenantProfileRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,364 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.oauth2.deprecated.OAuth2ClientRegistrationRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,365 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.audit.AuditLogRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,365 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.dashboard.DashboardRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,365 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.usagerecord.ApiUsageStateRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,366 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.widget.WidgetTypeRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,366 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sqlts.dictionary.TsKvDictionaryRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,366 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.oauth2.OAuth2ParamsRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,368 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.device.DeviceRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,368 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.event.EventRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,368 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.user.UserCredentialsRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,371 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.ota.OtaPackageRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,375 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sqlts.ts.TsKvRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,376 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.settings.AdminSettingsRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,376 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.widget.WidgetsBundleRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,389 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.oauth2.OAuth2RegistrationRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,395 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.device.DeviceCredentialsRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,396 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.attributes.AttributeKvRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,396 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.oauth2.OAuth2DomainRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,396 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.resource.TbResourceInfoRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,396 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.rpc.RpcRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,398 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.dashboard.DashboardInfoRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,415 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.alarm.AlarmRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,416 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.tenant.TenantRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,416 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.asset.AssetRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,417 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.device.DeviceProfileRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,417 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.oauth2.OAuth2MobileRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,417 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.edge.EdgeRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,418 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.user.UserRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,418 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.component.ComponentDescriptorRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,418 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.customer.CustomerRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,419 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.entityview.EntityViewRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,419 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.edge.EdgeEventRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,419 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface org.thingsboard.server.dao.sql.ota.OtaPackageInfoRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2021-11-08 20:43:36,419 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 177ms. Found 0 Redis repository interfaces.
2021-11-08 20:43:37,211 [main] INFO o.s.i.c.DefaultConfiguringBeanFactoryPostProcessor - No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
2021-11-08 20:43:37,244 [main] INFO o.s.i.c.DefaultConfiguringBeanFactoryPostProcessor - No bean named 'taskScheduler' has been explicitly defined. Therefore, a default ThreadPoolTaskScheduler will be created.
2021-11-08 20:43:37,293 [main] INFO o.s.i.c.DefaultConfiguringBeanFactoryPostProcessor - No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
2021-11-08 20:43:38,313 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.integration.config.IntegrationManagementConfiguration' of type [org.springframework.integration.config.IntegrationManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-11-08 20:43:38,352 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'integrationChannelResolver' of type [org.springframework.integration.support.channel.BeanFactoryChannelResolver] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-11-08 20:43:38,356 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'integrationDisposableAutoCreatedBeans' of type [org.springframework.integration.config.annotation.Disposables] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-11-08 20:43:39,279 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http)
2021-11-08 20:43:39,320 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-0.0.0.0-8080"]
2021-11-08 20:43:39,320 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
2021-11-08 20:43:39,321 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.46]
2021-11-08 20:43:39,504 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2021-11-08 20:43:39,504 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 10414 ms
2021-11-08 20:43:40,390 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default]
2021-11-08 20:43:40,583 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 5.4.32.Final
2021-11-08 20:43:41,101 [main] INFO o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2021-11-08 20:43:41,346 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
2021-11-08 20:43:41,517 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
2021-11-08 20:43:41,557 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
2021-11-08 20:43:44,445 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2021-11-08 20:43:44,485 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default'
2021-11-08 20:43:48,076 [nosql-dispatcher-1-thread-1] INFO o.t.s.d.u.AbstractBufferedRateExecutor - Buffered rate executor thread started
2021-11-08 20:43:48,092 [nosql-dispatcher-1-thread-2] INFO o.t.s.d.u.AbstractBufferedRateExecutor - Buffered rate executor thread started
2021-11-08 20:43:49,094 [main] INFO o.t.s.d.a.CachedAttributesService - Going to use directExecutor for the local cache type caffeine
2021-11-08 20:43:50,512 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [public/index.html]
2021-11-08 20:43:52,258 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@22cce199, org.springframework.security.web.context.SecurityContextPersistenceFilter@8de8b07, org.springframework.security.web.header.HeaderWriterFilter@59509393, org.springframework.security.web.csrf.CsrfFilter@3dd27116, org.springframework.security.web.authentication.logout.LogoutFilter@6b64921f, org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter@1028a747, org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter@613ba54e, org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter@24890021, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@1fe37d27, org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter@14b4b25e, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@3fc7abf6, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@3a720ae3, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@4babe06f, org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter@7205a8b7, org.springframework.security.web.session.SessionManagementFilter@7ec75228, org.springframework.security.web.access.ExceptionTranslationFilter@345af277, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6d387e9b]
2021-11-08 20:43:52,678 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 1 endpoint(s) beneath base path '/actuator'
2021-11-08 20:43:52,837 [main] INFO o.s.s.c.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
2021-11-08 20:43:52,982 [main] INFO o.s.i.endpoint.EventDrivenConsumer - Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
2021-11-08 20:43:52,983 [main] INFO o.s.i.c.PublishSubscribeChannel - Channel 'application.errorChannel' has 1 subscriber(s).
2021-11-08 20:43:52,988 [main] INFO o.s.i.endpoint.EventDrivenConsumer - started bean '_org.springframework.integration.errorLogger'
2021-11-08 20:43:52,988 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-0.0.0.0-8080"]
2021-11-08 20:43:53,063 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path ''
2021-11-08 20:43:53,192 [main] INFO o.t.s.i.ThingsboardInstallService - Starting ThingsBoard Installation...
2021-11-08 20:43:53,193 [main] INFO o.t.s.i.ThingsboardInstallService - Installing DataBase schema for entities...
2021-11-08 20:43:53,194 [main] INFO o.t.s.s.i.SqlAbstractDatabaseSchemaService - Installing SQL DataBase schema part: schema-entities.sql
2021-11-08 20:43:53,460 [main] INFO o.t.s.s.i.SqlAbstractDatabaseSchemaService - Installing SQL DataBase schema indexes part: schema-entities-idx.sql
2021-11-08 20:43:53,499 [main] INFO o.t.s.s.i.PsqlEntityDatabaseSchemaService - Installing SQL DataBase schema PostgreSQL specific indexes part: schema-entities-idx-psql-addon.sql
2021-11-08 20:43:53,528 [main] INFO o.t.s.i.ThingsboardInstallService - Installing DataBase schema for timeseries...
2021-11-08 20:43:53,529 [main] INFO o.t.s.s.i.CassandraAbstractDatabaseSchemaService - Installing Cassandra DataBase schema part: schema-ts.cql
2021-11-08 20:43:53,552 [main] WARN c.d.o.d.internal.core.ContactPoints - Ignoring invalid contact point cassandra:9042 (unknown host cassandra)
2021-11-08 20:43:53,789 [main] INFO c.d.o.d.i.c.DefaultMavenCoordinates - DataStax Java driver for Apache Cassandra(R) (com.datastax.oss:java-driver-core) version 4.10.0
2021-11-08 20:43:54,151 [Thingsboard Cluster-admin-0] INFO c.d.o.d.internal.core.time.Clock - Could not access native clock (see debug logs for details), falling back to Java system clock
2021-11-08 20:43:54,153 [Thingsboard Cluster-admin-0] INFO c.d.o.d.i.c.metadata.MetadataManager - [Thingsboard Cluster] No contact points provided, defaulting to /127.0.0.1:9042
2021-11-08 20:43:54,436 [Thingsboard Cluster-admin-1] WARN c.d.o.d.i.c.c.ControlConnection - [Thingsboard Cluster] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=28b26998), trying next node (ConnectionInitException: [Thingsboard Cluster|control|connecting...] Protocol initialization request, step 1 (OPTIONS): failed to send request (io.netty.channel.StacklessClosedChannelException))
2021-11-08 20:43:57,471 [Thingsboard Cluster-admin-1] WARN c.d.o.d.i.c.c.ControlConnection - [Thingsboard Cluster] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=28b26998), trying next node (ConnectionInitException: [Thingsboard Cluster|control|connecting...] Protocol initialization request, step 1 (OPTIONS): failed to send request (io.netty.channel.StacklessClosedChannelException))
2021-11-08 20:44:02,772 [Thingsboard Cluster-admin-1] WARN c.d.o.d.i.c.c.ControlConnection - [Thingsboard Cluster] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=28b26998), trying next node (ConnectionInitException: [Thingsboard Cluster|control|connecting...] Protocol initialization request, step 1 (OPTIONS): failed to send request (io.netty.channel.StacklessClosedChannelException))
2021-11-08 20:44:15,279 [Thingsboard Cluster-admin-1] WARN c.d.o.d.i.c.c.ControlConnection - [Thingsboard Cluster] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=28b26998), trying next node (ConnectionInitException: [Thingsboard Cluster|control|connecting...] Protocol initialization request, step 1 (OPTIONS): failed to send request (io.netty.channel.StacklessClosedChannelException))
2021-11-08 20:44:37,868 [Thingsboard Cluster-admin-1] WARN c.d.o.d.i.c.c.ControlConnection - [Thingsboard Cluster] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=28b26998), trying next node (ConnectionInitException: [Thingsboard Cluster|control|connecting...] Protocol initialization request, step 1 (OPTIONS): failed to send request (io.netty.channel.StacklessClosedChannelException))
2021-11-08 20:45:29,321 [Thingsboard Cluster-admin-1] WARN c.d.o.d.i.c.c.ControlConnection - [Thingsboard Cluster] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=28b26998), trying next node (ConnectionInitException: [Thingsboard Cluster|control|connecting...] Protocol initialization request, step 1 (OPTIONS): failed to send request (io.netty.channel.StacklessClosedChannelException))
2021-11-08 20:47:15,909 [Thingsboard Cluster-admin-1] WARN c.d.o.d.i.c.c.ControlConnection - [Thingsboard Cluster] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=28b26998), trying next node (ConnectionInitException: [Thingsboard Cluster|control|connecting...] Protocol initialization request, step 1 (OPTIONS): failed to send request (io.netty.channel.StacklessClosedChannelException))
2021-11-08 20:50:29,850 [Thingsboard Cluster-admin-1] WARN c.d.o.d.i.c.c.ControlConnection - [Thingsboard Cluster] Error connecting to Node(endPoint=/127.0.0.1:9042, hostId=null, hashCode=28b26998), trying next node (ConnectionInitException: [Thingsboard Cluster|control|connecting...] Protocol initialization request, step 1 (OPTIONS): failed to send request (io.netty.channel.StacklessClosedChannelException))
Version of TB: 3.3.1
Commit: 80d6e8d9b9330baa57bc1570b444e05a6d99ab9d
the things board Ce version 3.4.3 monolith K8s setup closes the WebSocket channel after 10 responses (no reason, error code 1006)and as the Documents show there isn't any limitations also I tried the linux VM setup and it didn't close is there any limitation in the docker image setup? I also tried adding 0 value for ws env's and it didn't help
my changes to the ConfigMap
apiVersion: v1 kind: ConfigMap metadata: name: tb-node-config namespace: thingsboard labels: name: tb-node-config data: conf: | export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_TENANT=0 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_CUSTOMER=0 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_REGULAR_USER=0 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_PUBLIC_USER=0 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_QUEUE_PER_WS_SESSION=5000 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_TENANT=0 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_CUSTOMER=0 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_REGULAR_USER=0 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_PUBLIC_USER=0 export TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_UPDATES_PER_SESSION=0
the logs
751.7a70ed70206456d6d163.js:1 WebSocket error event CloseEvent {isTrusted: true, wasClean: false, code: 1006, reason: '', type: 'close', …} onError @ 7751.7a70ed70206456d6d163.js:1 (anonymous) @ 7751.7a70ed70206456d6d163.js:1 __tryOrUnsub @ vendor.3f3611f892c51888617d.js:1 error @ vendor.3f3611f892c51888617d.js:1 _error @ vendor.3f3611f892c51888617d.js:1 error @ vendor.3f3611f892c51888617d.js:1 error @ vendor.3f3611f892c51888617d.js:1 j.onclose @ 7751.7a70ed70206456d6d163.js:1 V @ polyfills.775a399a0b5f9321b84c.js:1 invokeTask @ polyfills.775a399a0b5f9321b84c.js:1 onInvokeTask @ vendor.3f3611f892c51888617d.js:1 invokeTask @ polyfills.775a399a0b5f9321b84c.js:1 runTask @ polyfills.775a399a0b5f9321b84c.js:1 invokeTask @ polyfills.775a399a0b5f9321b84c.js:1 at @ polyfills.775a399a0b5f9321b84c.js:1 it @ polyfills.775a399a0b5f9321b84c.js:1 mt @ polyfills.775a399a0b5f9321b84c.js:1 7751.7a70ed70206456d6d163.js:1 WebSocket error event CloseEvent {isTrusted: true, wasClean: false, code: 1006, reason: '', type: 'close', …} onError @ 7751.7a70ed70206456d6d163.js:1 (anonymous) @ 7751.7a70ed70206456d6d163.js:1 __tryOrUnsub @ vendor.3f3611f892c51888617d.js:1 error @ vendor.3f3611f892c51888617d.js:1 _error @ vendor.3f3611f892c51888617d.js:1 error @ vendor.3f3611f892c51888617d.js:1 error @ vendor.3f3611f892c51888617d.js:1 j.onclose @ 7751.7a70ed70206456d6d163.js:1 V @ polyfills.775a399a0b5f9321b84c.js:1 invokeTask @ polyfills.775a399a0b5f9321b84c.js:1 onInvokeTask @ vendor.3f3611f892c51888617d.js:1 invokeTask @ polyfills.775a399a0b5f9321b84c.js:1 runTask @ polyfills.775a399a0b5f9321b84c.js:1 invokeTask @ polyfills.775a399a0b5f9321b84c.js:1 at @ polyfills.775a399a0b5f9321b84c.js:1 it @ polyfills.775a399a0b5f9321b84c.js:1 mt @ polyfills.775a399a0b5f9321b84c.js:1
Hi All,
I am trying to upgrade my thingsboard that i installed using helm chart available in this repo. I am running the script k8s-upgrade-tb.sh where I installed my thingsboard application. I see some migration taking place however things start to go wrong when the script tries to upgrade to version 3.5.0. The following is the error log:
Starting ThingsBoard Upgrade from version 3.4.2 ... Clearing cache to upgrade from version 3.4.2 to 3.4.3 ... Clearing cache [repositorySettings] Upgrading ThingsBoard from version 3.4.2 to 3.4.3 ... Upgrading ThingsBoard from version 3.4.3 to 3.4.4 ... Upgrading ThingsBoard from version 3.4.4 to 3.5.0 ... Updating schema ... Schema updated. Creating default notification configs for system admin Unexpected error during ThingsBoard installation! org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:259) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:174) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) at com.sun.proxy.$Proxy258.save(Unknown Source) at org.thingsboard.server.dao.sql.JpaAbstractDao.save(JpaAbstractDao.java:68) at org.thingsboard.server.dao.sql.JpaAbstractDao.saveAndFlush(JpaAbstractDao.java:75) at org.thingsboard.server.dao.sql.JpaAbstractDao$$FastClassBySpringCGLIB$$c3259965.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) at org.thingsboard.server.dao.aspect.SqlDaoCallsAspect.handleSqlCall(SqlDaoCallsAspect.java:158) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) at org.thingsboard.server.dao.sql.notification.JpaNotificationTargetDao$$EnhancerBySpringCGLIB$$8d6065d0.saveAndFlush(<generated>) at org.thingsboard.server.dao.notification.DefaultNotificationTargetService.saveNotificationTarget(DefaultNotificationTargetService.java:68) at org.thingsboard.server.dao.notification.DefaultNotificationSettingsService.createTarget(DefaultNotificationSettingsService.java:224) at org.thingsboard.server.dao.notification.DefaultNotificationSettingsService.createDefaultNotificationConfigs(DefaultNotificationSettingsService.java:151) at org.thingsboard.server.dao.notification.DefaultNotificationSettingsService$$FastClassBySpringCGLIB$$66faebb9.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) at org.thingsboard.server.dao.notification.DefaultNotificationSettingsService$$EnhancerBySpringCGLIB$$e424c576.createDefaultNotificationConfigs(<generated>) at org.thingsboard.server.service.install.DefaultSystemDataLoaderService.createDefaultNotificationConfigs(DefaultSystemDataLoaderService.java:715) at org.thingsboard.server.install.ThingsboardInstallService.performInstall(ThingsboardInstallService.java:255) at org.thingsboard.server.ThingsboardInstallApplication.main(ThingsboardInstallApplication.java:49) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:467) Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:103) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:37) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:67) at org.hibernate.loader.Loader.getResultSet(Loader.java:2322) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2075) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2037) at org.hibernate.loader.Loader.doQuery(Loader.java:956) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:357) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:327) at org.hibernate.loader.Loader.loadEntity(Loader.java:2440) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:77) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:61) at org.hibernate.persister.entity.AbstractEntityPersister.doLoad(AbstractEntityPersister.java:4550) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:4540) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:571) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:539) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:208) at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:327) at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:108) at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:74) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:118) at org.hibernate.internal.SessionImpl.fireLoadNoChecks(SessionImpl.java:1231) at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1220) at org.hibernate.internal.SessionImpl.access$2100(SessionImpl.java:202) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.doLoad(SessionImpl.java:2848) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.lambda$load$1(SessionImpl.java:2825) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.perform(SessionImpl.java:2781) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2825) at org.hibernate.internal.SessionImpl.get(SessionImpl.java:1024) at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:308) at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:175) at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:74) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:829) at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:816) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:315) at com.sun.proxy.$Proxy184.merge(Unknown Source) at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:669) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:289) at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:530) at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:286) at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:640) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ... 61 common frames omitted Caused by: org.postgresql.util.PSQLException: ERROR: column notificati0_.external_id does not exist Position: 131 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:356) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:496) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:413) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190) at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:134) at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57) ... 121 common frames omitted Unexpected error during ThingsBoard installation! pod "tb-db-setup" deleted
Hi
in file k8s-deploy-thirdparty.sh:
redisNodes=$(kubectl get pods -l app=tb-redis -o jsonpath='{range.items[*]}{.status.podIP}:6379 ')
missing {end} at the end of jsonpath
you can check example in kubernetes site https://kubernetes.io/docs/reference/kubectl/jsonpath/
it should be like this
redisNodes=$(kubectl get pods -l app=tb-redis -o jsonpath='{range.items[*]}{.status.podIP}:6379 {end}')
problem:
when i run in my kubernetes cluster (v 1.18.8) created by rancher it produces extra empty array like this:
10.42.3.17:6379 10.42.2.41:6379 10.42.4.29:6379 10.42.4.31:6379 10.42.3.20:6379 10.42.2.43:6379 :6379
best regards
The tb-node setatefulset pod log keeps printing that topicId changed. It prints this for every id every 60 seconds~. From my understanding this happens when a topic is being recreated with the same id. Is this expected bahaviour?
Should not keep printing these messages for the same kafka topics every 60 seconds.
The messages look like this
....
2023-07-18 11:40:47,193 [kafka-consumer-stats-6-thread-1] INFO org.apache.kafka.clients.Metadata - [Consumer clientId=consumer-stats-loader-client, groupId=consumer-stats-loader-client-group] Resetting the last seen epoch of partition tb_core.1-0 to 0 since the associated topicId changed from null to fwMO8nYKRQGjNtbuUtspfQ
2023-07-18 11:40:47,193 [kafka-consumer-stats-6-thread-1] INFO org.apache.kafka.clients.Metadata - [Consumer clientId=consumer-stats-loader-client, groupId=consumer-stats-loader-client-group] Resetting the last seen epoch of partition tb_core.5-0 to 0 since the associated topicId changed from null to YMBDSCF2R7SrrgxblL5p7A
2023-07-18 11:40:47,193 [kafka-consumer-stats-6-thread-1] INFO org.apache.kafka.clients.Metadata - [Consumer clientId=consumer-stats-loader-client, groupId=consumer-stats-loader-client-group] Resetting the last seen epoch of partition tb_core.7-0 to 0 since the associated topicId changed from null to zR53ZGknRoWhibRlgVM3cQ
....
Full tb-node log:
tb-node-0-log.txt
Transport nodes don't seem to have the same behaviour at the start, but sometimes also start spamming these kind of messages for some topics after a couple of weeks or months of deployment.
Helm tb still stays at 3.4.0 at this time of writing, while others (minikube, etc etc) have been up to the latest 3.5.1
May I know why? Is it not working for helm?
Also, separately, how to upgrade TB through helm? I cannot see any upgrade-tb.sh being run?
[root@master thingsboard]# helm install --create-namespace -n thingsboard thingsboard thingsboard --set cassandra.enabled=true --set mqtt.replicaCount=3 --set http.replicaCount=3 --set coap.replicaCount=3
Error: INSTALLATION FAILED: failed to download "thingsboard"
Hello,
I am still learning how kubernetes-minikube work.
I tested the basic setup with Postgres and with Hybrid configuration and everything went smoothly.
I ended up with problems when i tried the High-Availability setup.
Specifically Postgres pgpool Pod keeps restarting and gives me this error (i saw it through the kubenetes dashboard).
"Readiness probe failed: psql: FATAL: failed to create a backend 0 connection DETAIL: not executing failover because failover_on_backend_error is off"
.env settings:
PLATFORM=minikube
DEPLOYMENT_TYPE=high-availability
DATABASE=hybrid
CASSANDRA_REPLICATION_FACTOR=1
everything else is default
PS : All the tests i did was with the minikube configuration
There is a problem with the mqtt connection after the deployment of the k8s cluster on thingsboard.
When mqtt's: replicas=1, a single device repeatedly establishes and closes the connection, no matter how many times it is executed continuously, it can work normally.
When mqtt's: replicas>1, a single device repeatedly establishes and closes the connection, which will cause many problems such as connection timeout and connection failure.
I don't know why. Please help me.Thanks.
Hi
I realized that pgpool configuration override
the default values changed to these values
load_balance_mode = on
to load_balance_mode = off
and
black_function_list = 'nextval,setval'
to black_function_list = 'currval,lastval,nextval,setval'
i got a question about why did you override these values ??
are default values make problem and where?
Thanks in advance
Hello,
we are upgrading our test infrastructure on OKD (aka Openshift), but we met a issue: the tb-node-config is missing a folder, the log folder, and cannot create it. We added a temporary volume in the definition of the pod and the upgrade worked as expected.
diff --git a/common/database-setup.yml b/common/database-setup.yml
index 09ef5cf..55e62a8 100644
--- a/common/database-setup.yml
+++ b/common/database-setup.yml
@@ -31,6 +31,8 @@ spec:
path: logback.xml
- name: tb-node-logs
emptyDir: {}
+ - name: tb-node-logs-update
+ emptyDir: {}
containers:
- name: tb-db-setup
imagePullPolicy: Always
@@ -48,5 +50,7 @@ spec:
name: tb-node-config
- mountPath: /var/log/thingsboard
name: tb-node-logs
+ - mountPath: /var/log/thingsboard/tb-db-setup/
+ name: tb-node-logs-update
command: ['sh', '-c', 'while [ ! -f /tmp/install-finished ]; do sleep 2; done;']
restartPolicy: Never
Hi!
We successfully deployed the version 3.3.2 on Google Kubernetes Engine, but with only 4 devices that monitor energy consumption and 6 rule chains that perform a simple anomaly detection, the kafka pod consume all the space dedicated to the logs.
We didn't change the configuration contained in thirdparty.yml.
The question is: did you test this kafka configuration with a certain number of devices and rule chains?
dependencies:
Dependencies are gone.
Especially the minimal version of postgresql-ha has been changed to 9.1.1(Application version Postgres 14.3)
I have installed thingsboard using HELM. All the services and pods are up and running but cannot access the thingsboard app.
I have tried the following-
Here is the status of the pods
Here is the status of the services
Status of the cert-manager and nginx-ingress:
How can I access the thingsboard?
Hi Team
I need your help with one issue.
I have one tb-kafka and zookeeper running in k8s and 3 replicas of tb-node. but kafka node is keep crashing and restarting after some time with following error
ERROR Failed to clean up log for __consumer_offsets-35 in dir /kafka-logs/kafka due to IOException (kafka.server.LogDirFailureChannel)
java.io.IOException: Permission denied
at java.io.RandomAccessFile.setLength(Native Method)
at kafka.log.AbstractIndex.$anonfun$resize$1(AbstractIndex.scala:189)
at kafka.log.AbstractIndex.resize(AbstractIndex.scala:175)
at kafka.log.AbstractIndex.$anonfun$trimToValidSize$1(AbstractIndex.scala:241)
at kafka.log.AbstractIndex.trimToValidSize(AbstractIndex.scala:241)
at kafka.log.LogSegment.onBecomeInactiveSegment(LogSegment.scala:507)
Then I tried to reduce the replica of tb-node to 2 and I have now tb-node-0 and tb-node-1 pods are running but I could see js_eval.responses.tb-node-2. folders inside kafka-logs/kafka
Does this cause the Kafka crash or anything i am missing in my config?
I tried deploying this using this link for kicks on https://k3os.io/ in a VM with the minikube options. Installation went pretty smoothly, but when I go to the IP address of the VM, I just get a white screen. First suspect is networking, more specifically, container routing. Looks like the web container resolves, but beyond that, nada. All containers are, infact, running. Any ideas? I figured this'd be relatively similar to minikube, but I'm by no means versed in kube.
i noticed this repo is similar to the k8s module in thingsboard main project. what is the difference? Both of them seem community-active
I see this error in the tb-node pod while creating the tenants
2021-05-26 20:55:29,799 [http-nio-0.0.0.0-8080-exec-5] INFO o.h.e.i.DefaultLoadEventListener - HHH000327: Error performing load command
org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:103)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:67)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2292)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2050)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2012)
Caused by: org.postgresql.util.PSQLException: ERROR: column tenantenti0_.isolated_tb_core does not exist
Position: 324
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2455)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2155)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:288)
I'm generally struggling with the cluster deployment in AWS but Kubeone immediately throws this error after running terraform plan
command:
Error: Invalid index
on main.tf line 26, in locals:
26: zoneC = data.aws_availability_zones.available.names[2]
|----------------
| data.aws_availability_zones.available.names is list of string with 2 elements
The given key does not identify an element in this collection value.
I even tried to comment the references to the zoneC definition but doesn't seem to work.
```
Error: Error launching source instance: Unsupported: The requested configuration is currently not supported. Please check the documentation for supported configurations.
status code: 400, request id: 32ce446e-880a-4925-b3ec-a3740ff17b74
Error: Error launching source instance: Unsupported: The requested configuration is currently not supported. Please check the documentation for supported configurations.
status code: 400, request id: 6771d5a7-9269-4572-a4e1-cccc71381591Error: Error launching source instance: Unsupported: The requested configuration is currently not supported. Please check the documentation for supported configurations.
status code: 400, request id: 32ce446e-880a-4925-b3ec-a3740ff17b74
Error: Error launching source instance: Unsupported: The requested configuration is currently not supported. Please check the documentation for supported configurations.
status code: 400, request id: 6771d5a7-9269-4572-a4e1-cccc71381591
we deployed via helm chart though i seem to be having the an issue, everything is up and running,i can get to the web ui login however logging in with [email protected] / sysadmin does nothing....
thingsboard-coap-transport-0 1/1 Running 0 16m
thingsboard-http-transport-0 1/1 Running 1 (10m ago) 16m
thingsboard-jsexecutor-9f55ffbd8-glwhh 1/1 Running 1 (14m ago) 16m
thingsboard-jsexecutor-9f55ffbd8-j7vwk 1/1 Running 1 (14m ago) 16m
thingsboard-jsexecutor-9f55ffbd8-ld2n7 1/1 Running 1 (14m ago) 16m
thingsboard-jsexecutor-9f55ffbd8-n6cf6 1/1 Running 1 (15m ago) 16m
thingsboard-jsexecutor-9f55ffbd8-p6d8d 1/1 Running 0 11m
thingsboard-kafka-0 1/1 Running 0 16m
thingsboard-mqtt-transport-0 1/1 Running 1 (10m ago) 16m
thingsboard-node-0 1/1 Running 4 (12m ago) 16m
thingsboard-pg-pgpool-7bbf7b9f46-2kws4 1/1 Running 0 16m
thingsboard-pg-postgresql-0 1/1 Running 0 16m
thingsboard-redis-master-558c45fd6b-9r96r 1/1 Running 0 16m
thingsboard-web-ui-5656d7bfc4-jjmb5 1/1 Running 0 16m
thingsboard-zookeeper-0 1/1 Running 0 16m
The config for the minikube routes is outdated and will not work with newer versions of Kube.
https://github.com/thingsboard/thingsboard-ce-k8s/blob/master/minikube/routes.yml
error: error validating "minikube/routes.yml": error validating data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[0].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[0]): missing required field "pathType" in io.k8s.api.networking.v1.HTTPIngressPath, ValidationError(Ingress.spec.rules[0].http.paths[1].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[1].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[2].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[2].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[3].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[3].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[3]): missing required field "pathType" in io.k8s.api.networking.v1.HTTPIngressPath, ValidationError(Ingress.spec.rules[0].http.paths[4].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[4].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[4]): missing required field "pathType" in io.k8s.api.networking.v1.HTTPIngressPath, ValidationError(Ingress.spec.rules[0].http.paths[5].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[5].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[5]): missing required field "pathType" in io.k8s.api.networking.v1.HTTPIngressPath, ValidationError(Ingress.spec.rules[0].http.paths[6].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[6].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[6]): missing required field "pathType" in io.k8s.api.networking.v1.HTTPIngressPath, ValidationError(Ingress.spec.rules[0].http.paths[7].backend): unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[7].backend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[7]): missing required field "pathType" in io.k8s.api.networking.v1.HTTPIngressPath]; if you choose to ignore these errors, turn validation off with --validate=false'
Howdy,
I was trying to adapt the minikube HA deployment to full K8s, and making great progress, but since that massive refactor, I seem to have lost track of where HA was being kept in this repo. Did you guys remove it? Why?
Hello,
following your instruction at the following link https://thingsboard.io/docs/user-guide/install/cluster/openshift-cluster-setup/
and considering your prerequisite at this link https://thingsboard.io/docs/user-guide/install/upgrade-instructions/#ubuntucentos-33, we understood that in order to upgrade to 3.3.1 we must upgrade to 3.3.0 first. We tried with the latest commit, with the commit of the early semptember and other cmmit, but we meet always the following error message: "Unable to upgrade ThingsBoard, unsupported fromVersion: 3.2.2"
Where is a tag of this repo, or the right commit to find the 3.3.0 version? It seems you upgraded this repo directly from version 3.2.2 to 3.3.1...
I get the following error when initializing db for the first time during Thingsboard installation. Sometimes the job succeeds when I remove the limits and resources for this job but most of the time, it fails. I need to provide proper limits and resources in our Staging environment.
Starting ThingsBoard Installation... Installing DataBase schema for entities... Installing SQL DataBase schema part: schema-entities.sql Installing SQL DataBase schema indexes part: schema-entities-idx.sql Installing SQL DataBase schema PostgreSQL specific indexes part: schema-entities-idx-psql-addon.sql Installing DataBase schema for timeseries... Installing Cassandra DataBase schema part: schema-ts.cql Loading system data... Trying to create system admin user Creating system admin user is done Unable to load widget type from json: [/usr/share/thingsboard/data/json/system/widget_bundles/date.json] Unable to load widgets bundle from json: [/usr/share/thingsboard/data/json/system/widget_bundles/date.json] Unexpected error during ThingsBoard installation! java.lang.RuntimeException: Unable to load widgets bundle from json at org.thingsboard.server.service.install.InstallScripts.lambda$loadSystemWidgets$4(InstallScripts.java:191) at java.base/java.lang.Iterable.forEach(Iterable.java:75) at org.thingsboard.server.service.install.InstallScripts.loadSystemWidgets(InstallScripts.java:169) at org.thingsboard.server.service.install.DefaultSystemDataLoaderService.loadSystemWidgets(DefaultSystemDataLoaderService.java:469) at org.thingsboard.server.install.ThingsboardInstallService.performInstall(ThingsboardInstallService.java:258) at org.thingsboard.server.ThingsboardInstallApplication.main(ThingsboardInstallApplication.java:48) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:467) Caused by: java.lang.RuntimeException: Unable to load widget type from json at org.thingsboard.server.service.install.InstallScripts.lambda$loadSystemWidgets$3(InstallScripts.java:185) at java.base/java.lang.Iterable.forEach(Iterable.java:75) at org.thingsboard.server.service.install.InstallScripts.lambda$loadSystemWidgets$4(InstallScripts.java:177) ... 13 common frames omitted Caused by: org.thingsboard.server.dao.exception.DataValidationException: Widget type is referencing to non-existent widgets bundle! at org.thingsboard.server.dao.service.validator.WidgetTypeDataValidator.validateCreate(WidgetTypeDataValidator.java:67) at org.thingsboard.server.dao.service.validator.WidgetTypeDataValidator.validateCreate(WidgetTypeDataValidator.java:33) at org.thingsboard.server.dao.service.DataValidator.validate(DataValidator.java:50) at org.thingsboard.server.dao.widget.WidgetTypeServiceImpl.saveWidgetType(WidgetTypeServiceImpl.java:60) at org.thingsboard.server.service.install.InstallScripts.lambda$loadSystemWidgets$3(InstallScripts.java:182) ... 15 common frames omitted Unexpected error during ThingsBoard installation!
When configuring ThingsBoard to run on EKS via Terraform, I want to specify a VPC ID. I've already got a VPC set up that I want ThingsBoard to reside in. Is there a way to specify that through the config? I see that there's mentions of a vpc_id
field. Can I specify that in terraform.tfvars
?
Starting 'ThingsBoard MQTT Transport Microservice' ...
[0.001s][error][logging] Error opening log file '/var/log/tb-mqtt-transport/tb-mqtt-transport-0-gc.log': Permission denied
[0.001s][error][logging] Initialization of output 'file=/var/log/tb-mqtt-transport/tb-mqtt-transport-0-gc.log' using options 'filecount=10,filesize=10M' failed.
Invalid -Xlog option '-Xlog:gc*,heap*,age*,safepoint=debug:file=/var/log/tb-mqtt-transport/tb-mqtt-transport-0-gc.log:time,uptime,level,tags:filecount=10,filesize=10M', see error log for details.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Environment: OpenShift Local (CRC) 4.11
Workaround:
Change log directory to /tmp in tb-transport-configmap.yml
export JAVA_OPTS="$JAVA_OPTS -Xlog:gc*,heap*,age*,safepoint=debug:file=/tmp/${TB_SERVICE_ID}-gc.log:time,uptime,level,tags:filecount=10,filesize=10M"
In starting tb-js-executor:3.3.3 the following error is recorded:
2022-02-18 10:48:02,925 [main] INFO: kafka template started.
2022-02-18 10:48:03,725 [main] ERROR: uncaughtException: options.port should be >= 0 and < 65536. Received NaN.
RangeError [ERR_SOCKET_BAD_PORT]: options.port should be >= 0 and < 65536. Received NaN.
at new NodeError (node:internal/errors:371:5)
at validatePort (node:internal/validators:216:11)
at Server.listen (node:net:1461:5)
at Function.listen (/usr/share/tb-js-executor/node_modules/express/lib/application.js:618:24)
at Object. (/usr/share/tb-js-executor/api/httpServer.js:30:5)
It seems the offending line is:
(/usr/share/tb-js-executor/api/httpServer.js:30:5)
where it tries to start a web server for readiness probe:
app.listen(httpPort, () => logger.info(Started http endpoint on port ${httpPort}. Please, use /livenessProbe !
))
using the httpPort config parameter:
const config = require('config'),
logger = require('../config/logger')._logger('httpServer'),
express = require('express');
const httpPort = Number(config.get('http_port'));
But it seems the config parameter httpPort cannot be retrieved.
Indeed, looking at the source, the config file is in config/default.yml
http_port: "8888" # /livenessProbe
but it seems it cannot be read or its type is not correct, so ending up in the error:
port should be >= 0 and < 65536. Received NaN.
Thanks
Michele
Installation
Description
I stood up a ThingsBoard Microservices deployment on OKD 4.5, set up a tenant, and a device. Everything is peachy with HTTP requests as far as I can tell. Doing the following works fine:
curl --insecure -v -X POST -d @telemetry.json https://tb-route-http-transport-thingsboard.apps.lab.okd.local/api/v1/<access token>/telemetry --header "Content-Type:application/json"
However, while the installation scripts provided an http route, they did not provide an mqtt route. So I added my own.
spec:
host: tb-route-mqtt-transport-thingsboard.apps.lab.okd.local
path: /api/v1
to:
kind: Service
name: tb-mqtt-transport
weight: 100
port:
targetPort: mqtt
tls:
termination: edge
wildcardPolicy: None
status:
ingress:
- host: tb-route-mqtt-transport-thingsboard.apps.lab.okd.local
routerName: default
conditions:
- type: Admitted
status: 'True'
lastTransitionTime: '2020-10-23T18:11:43Z'
wildcardPolicy: None
routerCanonicalHostname: apps.lab.okd.local
And tried using Mosquitto
mosquitto_pub -d -h "tb-route-mqtt-transport-thingsboard.apps.lab.okd.local" -t "v1/devices/me/telemetry" -u "$ACCESS_TOKEN" -f "telemetry-data-as-object.json"
However, that failed with an Error: No route to host
and no other information.
So I tried mosquitto_pub
again with tb-route-node-root-thingsboard.apps.lab.okd.local
since I could use CURL and HTTP with that route (also set up by the scripts). But that also did not work.
I also tried performing a Gatling test, and of course, that also did not work.
What am I doing wrong? How do I get this route to work? Do I even need to? Can anybody provide an example of how to get MQTT working on a microservices deployment?
Environment
I also have an issue open on the main Thingsboard repo.
As per title, can Helm version be updated to 3.4.1?
Thanks
Hi, according to this link when Thingsboard is deployed with the micro-services architecture, which is what I am currently exploring with EKS on AWS and everything else AWS managed (RDS, MSK, Elasticache), there should be no downtime at least for minor version updates. However, based on the upgrade instructions found here there are some cases that tb-nodes need to be stopped and as a result experience some downtime. I looked through the upgrade instructions here but there is no mention when the tb-nodes should be stopped. Is the information of when to stop tb-nodes before an upgrade somewhere visible? Thx
Hi,
I have deployed thingsboard-ce-k8s project via helm using my AWS MSK kafka. I have enabled ingress as well. But on UI web page its giving error "POST: /api/noauth/oauth2Clients?platform=WEB 404: Not Found"
kubectl describe ing
Name: nginx-ingress-microk8s
Labels: app=nginx-ingress-microk8s
app.kubernetes.io/managed-by=Helm
Namespace: default
Address: 127.0.0.1
Ingress Class: public
Default backend:
Rules:
Host Path Backends
/api/v1/.* ioc-http:8082 ()
/api/.* ioc-node:8080 (10.1.80.110:8080)
/swagger.* ioc-node:8080 (10.1.80.110:8080)
/webjars.* ioc-node:8080 (10.1.80.110:8080)
/v2/.* ioc-node:8080 (10.1.80.110:8080)
/v3/.* ioc-node:8080 (10.1.80.110:8080)
/static/rulenode/.* ioc-node:8080 (10.1.80.110:8080)
/assets/help/.*/rulenode/.* ioc-node:8080 (10.1.80.110:8080)
/oauth2/.* ioc-node:8080 (10.1.80.110:8080)
/login/oauth2/.* ioc-node:8080 (10.1.80.110:8080)
/ ioc-webui:8084 (10.1.80.104:8084)
/.* ioc-webui:8084 (10.1.80.104:8084)
Annotations: meta.helm.sh/release-name: ioc
meta.helm.sh/release-namespace: default
Events:
On MQTT/HTTP transport i am getting this error and its crashing after timeout is hitting.
2023-11-06 04:27:35,653 [main] INFO o.t.s.q.d.HashPartitionService - Failed to get queues routing info: java.util.concurrent.ExecutionException: java.util.concurrent.TimeoutException!
2023-11-06 04:27:45,653 [main] INFO o.t.s.q.d.HashPartitionService - Try to get queue routing info.
On node pod i see below error
:22:07,865 [kafka-consumer-stats-8-thread-1] WARN o.t.s.q.k.TbKafkaConsumerStatsService - [tb-rule-engine-notifications-node-tb-node] Failed to get consumer group stats. Reason - null.
2023-11-06 04:22:08,865 [kafka-consumer-stats-8-thread-1] WARN o.t.s.q.k.TbKafkaConsumerStatsService - [rule-engine-node-tb-node] Failed to get consumer group stats. Reason - null.
2023-11-06 04:22:09,866 [kafka-consumer-stats-8-thread-1] WARN o.t.s.q.k.TbKafkaConsumerStatsService - [re-Main-consumer] Failed to get consumer group stats. Reason - null.
2023-11-06 04:22:11,373 [kafka-consumer-stats-8-thread-1] WARN o.t.s.q.k.TbKafkaConsumerStatsService - [re-SequentialByOriginator-consumer] Failed to get consumer group stats. Reason - Failed to get offsets by times in 1000ms.
2023-11-06 04:22:12,882 [kafka-consumer-stats-8-thread-1] WARN o.t.s.q.k.TbKafkaConsumerStatsService - [re-HighPriority-consumer] Failed to get consumer group stats. Reason - Failed to get offsets by times in 1000ms.
2023-11-06 04:23:13,392 [kafka-consumer-stats-8-thread-1] INFO org.apache.kafka.clients.Metadata - [Consumer clientId=consumer-stats-loader-client, groupId=consumer-stats-loader-client-group] Cluster ID: CLHIvEO9Qq6J8Z0Pcj5g8Q
2023-11-06 04:23:14,392 [kafka-consumer-stats-8-thread-1] WARN o.t.s.q.k.TbKafkaConsumerStatsService - [tb-rule-engine-notifications-node-tb-node] Failed to get consumer group stats. Reason - Failed to get offsets by times in 1001ms.
2023-11-06 04:23:15,897 [kafka-consumer-stats-8-thread-1] WARN o.t.s.q.k.TbKafkaConsumerStatsService - [rule-engine-node-tb-node] Failed to get consumer group stats. Reason - Failed to get offsets by times in 1001ms.
node pod is deployed with below env variables values:
- name: TB_SERVICE_ID
value: "tb-node"
- name: TB_SERVICE_TYPE
value: "tb-rule-engine"
- name: TB_QUEUE_TYPE
value: "kafka"
I find the cassandra.yaml use the wrong mountPath, it should be '/bitnami/cassandra' not '/var/lib/cassandra' ,please check it.
I run the script from Azure VM, trying to install with azure/microservices file but keep failing.
tb-node-db-configmap.yaml
SPRING_JPA_DATABASE_PLATFORM: org.hibernate.dialect.PostgreSQLDialect
SPRING_DRIVER_CLASS_NAME: org.postgresql.Driver
SPRING_DATASOURCE_URL: jdbc:postgresql://my-app-postgresql.postgres.database.azure.com:5432/myapp?user=myappusername&password=mypass?sslmode=require
SPRING_DATASOURCE_USERNAME: myappusername
SPRING_DATASOURCE_PASSWORD: mypass
Then I run ./k8s-install-tb.sh, this error pop up:
Starting ThingsBoard Installation...
Installing DataBase schema for entities...
Installing SQL DataBase schema part: schema-entities.sql
Unexpected error during ThingsBoard installation!
Which part I do wrong and please help me with this! Thank you!!
Hi
I use kubernetes v1.19.6
I can fully deploy thingsboard hybrid and high availability to kubernetes
But when i scale up tb-node from 1 to 2 the pgpool instance became unhealthy after a while and restart the instance many times
I do not think it is because of resources limitations because i could see that there is free resources.
What do you suggest to solve this problem?
Did i missed anything?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.