Prometheus PVC name too long

What happened?
Installing with tobs helm chart,  Prometheus DB volume PVC Name is more than 63 characters which is not supported by CSI.
Did you expect to see something different?
PVC Name should be less than 63 characters
How to reproduce it (as minimally and precisely as possible):
helm install \
  -n monitoring \
  --create-namespace \
  --set opentelemetry-operator.enabled=false \
  --set promscale.connection.uri=postgres://prometheus:xxxxxx@externaldatabase:5432/prometheus?sslmode=require \
  --set timescaledb-single.enabled=false \
  tobs timescale/tobs

Environment

tobs version:

# helm show chart timescale/tobs
apiVersion: v2
dependencies:
- condition: timescaledb-single.enabled
  name: timescaledb-single
  repository: https://charts.timescale.com
  version: 0.14.0
- condition: promscale.enabled
  name: promscale
  repository: https://charts.timescale.com
  version: 0.13.0
- condition: kube-prometheus-stack.enabled
  name: kube-prometheus-stack
  repository: https://prometheus-community.github.io/helm-charts
  version: 39.8.0
- condition: opentelemetry-operator.enabled
  name: opentelemetry-operator
  repository: https://open-telemetry.github.io/opentelemetry-helm-charts
  version: 0.11.8
description: A Helm chart for tobs, The Observability Stack for Kubernetes
home: https://github.com/timescale/tobs
keywords:
- observability
- monitoring
- tracing
- opentelemetry
maintainers:
- name: timescale
  url: https://www.timescale.com/
name: tobs
sources:
- https://github.com/timescale/tobs
version: 12.2.0

Kubernetes version information:
kubectl version
v1.24.3

Kubernetes cluster kind:
On Premise kubeadm

tobs Logs:

# kubectl get pvc -n monitoring
NAME                                                                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS     AGE
prometheus-tobs-kube-prometheus-prometheus-db-prometheus-tobs-kube-prometheus-prometheus-0   Bound    pvc-878e2454-58da-4dca-97ff-e97b9fc05cd2   8Gi        RWO            cstor-csi-disk   84s
prometheus-tobs-kube-prometheus-prometheus-db-prometheus-tobs-kube-prometheus-prometheus-1   Bound    pvc-297ae3ae-266d-4d0d-ab3e-d0077a4fd52b   8Gi        RWO            cstor-csi-disk   84s
tobs-grafana                                                                                Bound    pvc-a11b82b4-ac25-4d13-9947-1294523bfd66   10Gi       RWO            cstor-csi-disk   92s
# kc describe -n monitoring pod/prometheus-tobs-kube-prometheus-prometheus-0
Name:           prometheus-tobs-kube-prometheus-prometheus-0
Namespace:      monitoring
Priority:       0
Node:           kwrctvm3/<IP_ADDRESS>
Start Time:     Wed, 24 Aug 2022 12:21:24 +0200
Labels:         app.kubernetes.io/instance=tobs-kube-prometheus-prometheus
                app.kubernetes.io/managed-by=prometheus-operator
                app.kubernetes.io/name=prometheus
                app.kubernetes.io/version=2.38.0
                controller-revision-hash=prometheus-tobs-kube-prometheus-prometheus-6f494cb5d8
                operator.prometheus.io/name=tobs-kube-prometheus-prometheus
                operator.prometheus.io/shard=0
                prometheus=tobs-kube-prometheus-prometheus
                statefulset.kubernetes.io/pod-name=prometheus-tobs-kube-prometheus-prometheus-0
Annotations:    kubectl.kubernetes.io/default-container: prometheus
Status:         Pending
IP:
IPs:            <none>
Controlled By:  StatefulSet/prometheus-tobs-kube-prometheus-prometheus
Init Containers:
  init-config-reloader:
    Container ID:
    Image:         quay.io/prometheus-operator/prometheus-config-reloader:v0.58.0
    Image ID:
    Port:          8080/TCP
    Host Port:     0/TCP
    Command:
      /bin/prometheus-config-reloader
    Args:
      --watch-interval=0
      --listen-address=:8080
      --config-file=/etc/prometheus/config/prometheus.yaml.gz
      --config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml
      --watched-dir=/etc/prometheus/rules/prometheus-tobs-kube-prometheus-prometheus-rulefiles-0
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Limits:
      cpu:     200m
      memory:  50Mi
    Requests:
      cpu:     100m
      memory:  50Mi
    Environment:
      POD_NAME:  prometheus-tobs-kube-prometheus-prometheus-0 (v1:metadata.name)
      SHARD:     0
    Mounts:
      /etc/prometheus/config from config (rw)
      /etc/prometheus/config_out from config-out (rw)
      /etc/prometheus/rules/prometheus-tobs-kube-prometheus-prometheus-rulefiles-0 from prometheus-tobs-kube-prometheus-prometheus-rulefiles-0 (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-68cnc (ro)
Containers:
  prometheus:
    Container ID:
    Image:         quay.io/prometheus/prometheus:v2.38.0
    Image ID:
    Port:          9090/TCP
    Host Port:     0/TCP
    Args:
      --web.console.templates=/etc/prometheus/consoles
      --web.console.libraries=/etc/prometheus/console_libraries
      --storage.tsdb.retention.time=1d
      --config.file=/etc/prometheus/config_out/prometheus.env.yaml
      --storage.tsdb.path=/prometheus
      --web.enable-lifecycle
      --web.external-url=http://tobs-kube-prometheus-prometheus.monitoring:9090
      --web.route-prefix=/
      --web.config.file=/etc/prometheus/web_config/web-config.yaml
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Requests:
      cpu:        40m
      memory:     400Mi
    Liveness:     http-get http://:http-web/-/healthy delay=0s timeout=3s period=5s #success=1 #failure=6
    Readiness:    http-get http://:http-web/-/ready delay=0s timeout=3s period=5s #success=1 #failure=3
    Startup:      http-get http://:http-web/-/ready delay=0s timeout=3s period=15s #success=1 #failure=60
    Environment:  <none>
    Mounts:
      /etc/prometheus/certs from tls-assets (ro)
      /etc/prometheus/config_out from config-out (ro)
      /etc/prometheus/rules/prometheus-tobs-kube-prometheus-prometheus-rulefiles-0 from prometheus-tobs-kube-prometheus-prometheus-rulefiles-0 (rw)
      /etc/prometheus/web_config/web-config.yaml from web-config (ro,path="web-config.yaml")
      /prometheus from prometheus-tobs-kube-prometheus-prometheus-db (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-68cnc (ro)
  config-reloader:
    Container ID:
    Image:         quay.io/prometheus-operator/prometheus-config-reloader:v0.58.0
    Image ID:
    Port:          8080/TCP
    Host Port:     0/TCP
    Command:
      /bin/prometheus-config-reloader
    Args:
      --listen-address=:8080
      --reload-url=http://<IP_ADDRESS>:9090/-/reload
      --config-file=/etc/prometheus/config/prometheus.yaml.gz
      --config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml
      --watched-dir=/etc/prometheus/rules/prometheus-tobs-kube-prometheus-prometheus-rulefiles-0
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Limits:
      cpu:     200m
      memory:  50Mi
    Requests:
      cpu:     100m
      memory:  50Mi
    Environment:
      POD_NAME:  prometheus-tobs-kube-prometheus-prometheus-0 (v1:metadata.name)
      SHARD:     0
    Mounts:
      /etc/prometheus/config from config (rw)
      /etc/prometheus/config_out from config-out (rw)
      /etc/prometheus/rules/prometheus-tobs-kube-prometheus-prometheus-rulefiles-0 from prometheus-tobs-kube-prometheus-prometheus-rulefiles-0 (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-68cnc (ro)
Conditions:
  Type              Status
  Initialized       False
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  prometheus-tobs-kube-prometheus-prometheus-db:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  prometheus-tobs-kube-prometheus-prometheus-db-prometheus-tobs-kube-prometheus-prometheus-0
    ReadOnly:   false
  config:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  prometheus-tobs-kube-prometheus-prometheus
    Optional:    false
  tls-assets:
    Type:                Projected (a volume that contains injected data from multiple sources)
    SecretName:          prometheus-tobs-kube-prometheus-prometheus-tls-assets-0
    SecretOptionalName:  <nil>
  config-out:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  prometheus-tobs-kube-prometheus-prometheus-rulefiles-0:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      prometheus-tobs-kube-prometheus-prometheus-rulefiles-0
    Optional:  false
  web-config:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  prometheus-tobs-kube-prometheus-prometheus-web-config
    Optional:    false
  kube-api-access-68cnc:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason            Age                   From               Message
  ----     ------            ----                  ----               -------
  Warning  FailedScheduling  7m8s                  default-scheduler  0/11 nodes are available: 11 pod has unbound immediate PersistentVolumeClaims. preemption: 0/11 nodes are available: 11 Preemption is not helpful for scheduling.
  Normal   Scheduled         7m7s                  default-scheduler  Successfully assigned monitoring/prometheus-tobs-kube-prometheus-prometheus-0 to kwrctvm3
  Warning  FailedMount       2m49s                 kubelet            Unable to attach or mount volumes: unmounted volumes=[prometheus-tobs-kube-prometheus-prometheus-db], unattached volumes=[prometheus-tobs-kube-prometheus-prometheus-rulefiles-0 kube-api-access-68cnc tls-assets prometheus-tobs-kube-prometheus-prometheus-db web-config config config-out]: timed out waiting for the condition
  Warning  FailedMount       77s (x10 over 6m57s)  kubelet            MountVolume.MountDevice failed for volume "pvc-878e2454-58da-4dca-97ff-e97b9fc05cd2" : rpc error: code = Internal desc = Waiting for pvc-878e2454-58da-4dca-97ff-e97b9fc05cd2's CVC to be bound
  Warning  FailedMount       31s (x2 over 5m4s)    kubelet            Unable to attach or mount volumes: unmounted volumes=[prometheus-tobs-kube-prometheus-prometheus-db], unattached volumes=[prometheus-tobs-kube-prometheus-prometheus-db web-config config config-out prometheus-tobs-kube-prometheus-prometheus-rulefiles-0 kube-api-access-68cnc tls-assets]: timed out waiting for the condition
# kubectl describe cvc -n openebs | grep pvc-878e2454-58da-4dca-97ff-e97b9fc05cd2
Name:         pvc-878e2454-58da-4dca-97ff-e97b9fc05cd2
              openebs.io/volumeID: pvc-878e2454-58da-4dca-97ff-e97b9fc05cd2
  Warning  Provisioning  67s (x35 over 11m)  cstorvolumeclaim-controller  CStorVolume.cstor.openebs.io "pvc-878e2454-58da-4dca-97ff-e97b9fc05cd2" is invalid: metadata.labels: Invalid value: "prometheus-tobs-kube-prometheus-prometheus-db-prometheus-tobs-kube-prometheus-prometheus-0": must be no more than 63 characters

@furynick so after some testing I would suggest that if you're using openebs to add the following to the configuration to make this work.
kube-prometheus-stack:
  storageSpec:
    volumeClaimTemplate:
        metadata:
          name: foo

The main issue is with kube-prometheus-stack the way it's creating the PVC name is defined there and is not being set by tobs. I did create a PR to to kube-prometheus-stack Helm chart to allow for templating in both the Prometheus and Alertmanager storage specification https://github.com/prometheus-community/helm-charts/pull/2415 which will help with this.
After talking about this issue with the team I think the best path forward is to make the configuration of the volume claim optional in tobs and document how to make it work depending on your option.

Sorry for late answer but it doesn't seem to make any difference unless I made a mistake in syntax.
#> helm install --debug --wait -n monitoring --create-namespace --set opentelemetry-operator.enabled=false --set kube-prometheus-stack.storageSpec.volumeClaimTemplate.metadata.name=prometheus-data tobs timescale/tobs
install.go:178: [debug] Original chart version: ""
install.go:195: [debug] CHART PATH: /root/.cache/helm/repository/tobs-14.7.0.tgz

client.go:128: [debug] creating 1 resource(s)
client.go:128: [debug] creating 1 resource(s)
client.go:128: [debug] creating 1 resource(s)
client.go:128: [debug] creating 1 resource(s)
client.go:128: [debug] creating 1 resource(s)
client.go:128: [debug] creating 1 resource(s)
client.go:128: [debug] creating 1 resource(s)
client.go:128: [debug] creating 1 resource(s)
install.go:165: [debug] Clearing discovery cache
wait.go:48: [debug] beginning wait for 8 resources with timeout of 1m0s
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "custom-secret-scripts" Secret
client.go:339: [debug] secrets "custom-secret-scripts" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-certificate" Secret
client.go:339: [debug] secrets "tobs-certificate" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-credentials" Secret
client.go:339: [debug] secrets "tobs-credentials" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" ServiceAccount
client.go:339: [debug] serviceaccounts "tobs-kube-prometheus-stack-admission" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" ClusterRole
client.go:339: [debug] clusterroles.rbac.authorization.k8s.io "tobs-kube-prometheus-stack-admission" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" ClusterRoleBinding
client.go:339: [debug] clusterrolebindings.rbac.authorization.k8s.io "tobs-kube-prometheus-stack-admission" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" Role
client.go:339: [debug] roles.rbac.authorization.k8s.io "tobs-kube-prometheus-stack-admission" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" RoleBinding
client.go:339: [debug] rolebindings.rbac.authorization.k8s.io "tobs-kube-prometheus-stack-admission" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission-create" Job
client.go:339: [debug] jobs.batch "tobs-kube-prometheus-stack-admission-create" not found
client.go:128: [debug] creating 1 resource(s)
client.go:540: [debug] Watching for changes to Job tobs-kube-prometheus-stack-admission-create with timeout of 5m0s
client.go:568: [debug] Add/Modify event for tobs-kube-prometheus-stack-admission-create: ADDED
client.go:607: [debug] tobs-kube-prometheus-stack-admission-create: Jobs active: 0, jobs failed: 0, jobs succeeded: 0
client.go:568: [debug] Add/Modify event for tobs-kube-prometheus-stack-admission-create: MODIFIED
client.go:607: [debug] tobs-kube-prometheus-stack-admission-create: Jobs active: 1, jobs failed: 0, jobs succeeded: 0
client.go:568: [debug] Add/Modify event for tobs-kube-prometheus-stack-admission-create: MODIFIED
client.go:310: [debug] Starting delete for "tobs-pgbackrest" Secret
client.go:339: [debug] secrets "tobs-pgbackrest" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-promscale" ConfigMap
client.go:339: [debug] configmaps "tobs-promscale" not found
client.go:128: [debug] creating 1 resource(s)
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" ServiceAccount
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" ClusterRole
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" ClusterRoleBinding
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" Role
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission" RoleBinding
client.go:310: [debug] Starting delete for "tobs-kube-prometheus-stack-admission-create" Job
client.go:229: [debug] checking 138 resources for changes
client.go:250: [debug] Created a new ServiceAccount called "tobs-grafana" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-grafana-test" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-kube-state-metrics" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-prometheus-node-exporter" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-kube-prometheus-stack-alertmanager" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-kube-prometheus-stack-operator" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-kube-prometheus-stack-prometheus" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-promscale" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-timescaledb" in monitoring

client.go:250: [debug] Created a new ServiceAccount called "tobs-promscale-initializer-sa" in monitoring

client.go:250: [debug] Created a new Secret called "tobs-grafana" in monitoring

client.go:250: [debug] Created a new Secret called "alertmanager-tobs-kube-prometheus-stack-alertmanager" in monitoring

client.go:250: [debug] Created a new Secret called "tobs-promscale-connection" in monitoring

client.go:250: [debug] Created a new Secret called "tobs-grafana-datasources" in monitoring

client.go:250: [debug] Created a new Secret called "tobs-grafana-db" in monitoring

client.go:250: [debug] Created a new Secret called "tobs-scrape-config" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-grafana-config-dashboards" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-grafana" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-grafana-test" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-grafana-datasource" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-alertmanager-overview" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-apiserver" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-cluster-total" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-controller-manager" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-etcd" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-grafana-overview" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-k8s-coredns" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-k8s-resources-cluster" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-k8s-resources-namespace" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-k8s-resources-node" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-k8s-resources-pod" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-k8s-resources-workload" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-k8s-resources-workloads-namespace" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-kubelet" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-namespace-by-pod" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-namespace-by-workload" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-node-cluster-rsrc-use" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-node-rsrc-use" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-nodes-darwin" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-nodes" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-persistentvolumesusage" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-pod-total" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-prometheus" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-proxy" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-scheduler" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-kube-prometheus-stack-workload-total" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-timescaledb-patroni" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-timescaledb-pgbackrest" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-timescaledb-scripts" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-connection-initializer" in monitoring

client.go:250: [debug] Created a new ConfigMap called "tobs-grafana-dashboards" in monitoring

client.go:250: [debug] Created a new ConfigMap called "custom-init-scripts" in monitoring

client.go:250: [debug] Created a new PersistentVolumeClaim called "tobs-grafana" in monitoring

client.go:512: [debug] Looks like there are no changes for ClusterRole "tobs-grafana-clusterrole"
client.go:512: [debug] Looks like there are no changes for ClusterRole "tobs-kube-state-metrics"
client.go:512: [debug] Looks like there are no changes for ClusterRole "tobs-kube-prometheus-stack-operator"
client.go:512: [debug] Looks like there are no changes for ClusterRole "tobs-kube-prometheus-stack-prometheus"
client.go:512: [debug] Looks like there are no changes for ClusterRoleBinding "tobs-grafana-clusterrolebinding"
client.go:512: [debug] Looks like there are no changes for ClusterRoleBinding "tobs-kube-state-metrics"
client.go:512: [debug] Looks like there are no changes for ClusterRoleBinding "tobs-kube-prometheus-stack-operator"
client.go:512: [debug] Looks like there are no changes for ClusterRoleBinding "tobs-kube-prometheus-stack-prometheus"
client.go:250: [debug] Created a new Role called "tobs-grafana" in monitoring

client.go:250: [debug] Created a new Role called "tobs-timescaledb" in monitoring

client.go:250: [debug] Created a new Role called "tobs-promscale-initializer-role" in monitoring

client.go:250: [debug] Created a new RoleBinding called "tobs-grafana" in monitoring

client.go:250: [debug] Created a new RoleBinding called "tobs-timescaledb" in monitoring

client.go:250: [debug] Created a new RoleBinding called "tobs-promscale-initializer-rolebinding" in monitoring

client.go:250: [debug] Created a new Service called "tobs-grafana" in monitoring

client.go:250: [debug] Created a new Service called "tobs-kube-state-metrics" in monitoring

client.go:250: [debug] Created a new Service called "tobs-prometheus-node-exporter" in monitoring

client.go:250: [debug] Created a new Service called "tobs-kube-prometheus-stack-alertmanager" in monitoring

client.go:512: [debug] Looks like there are no changes for Service "tobs-kube-prometheus-stack-coredns"
client.go:512: [debug] Looks like there are no changes for Service "tobs-kube-prometheus-stack-kube-controller-manager"
client.go:512: [debug] Looks like there are no changes for Service "tobs-kube-prometheus-stack-kube-etcd"
client.go:512: [debug] Looks like there are no changes for Service "tobs-kube-prometheus-stack-kube-proxy"
client.go:512: [debug] Looks like there are no changes for Service "tobs-kube-prometheus-stack-kube-scheduler"
client.go:250: [debug] Created a new Service called "tobs-kube-prometheus-stack-operator" in monitoring

client.go:250: [debug] Created a new Service called "tobs-kube-prometheus-stack-prometheus" in monitoring

client.go:250: [debug] Created a new Service called "tobs-promscale" in monitoring

client.go:250: [debug] Created a new Service called "tobs-config" in monitoring

client.go:250: [debug] Created a new Service called "tobs-replica" in monitoring

client.go:250: [debug] Created a new Service called "tobs" in monitoring

client.go:250: [debug] Created a new DaemonSet called "tobs-prometheus-node-exporter" in monitoring

client.go:250: [debug] Created a new Deployment called "tobs-grafana" in monitoring

client.go:250: [debug] Created a new Deployment called "tobs-kube-state-metrics" in monitoring

client.go:250: [debug] Created a new Deployment called "tobs-kube-prometheus-stack-operator" in monitoring

W0916 09:03:46.769218 2340124 warnings.go:70] spec.template.spec.containers[0].env[2].name: duplicate name "TOBS_TELEMETRY_INSTALLED_BY"
W0916 09:03:46.769237 2340124 warnings.go:70] spec.template.spec.containers[0].env[3].name: duplicate name "TOBS_TELEMETRY_VERSION"
client.go:250: [debug] Created a new Deployment called "tobs-promscale" in monitoring

client.go:250: [debug] Created a new StatefulSet called "tobs-timescaledb" in monitoring

client.go:250: [debug] Created a new Job called "tobs-connection-secret" in monitoring

client.go:250: [debug] Created a new Alertmanager called "tobs-kube-prometheus-stack-alertmanager" in monitoring

client.go:521: [debug] Patch MutatingWebhookConfiguration "tobs-kube-prometheus-stack-admission" in namespace
client.go:250: [debug] Created a new PodMonitor called "tobs-timescaledb" in monitoring

client.go:250: [debug] Created a new Prometheus called "tobs-kube-prometheus-stack-prometheus" in monitoring

Error: INSTALLATION FAILED: failed to create resource: Internal error occurred: failed calling webhook "prometheusrulemutate.monitoring.coreos.com": failed to call webhook: Post "https://tobs-kube-prometheus-stack-operator.monitoring.svc:443/admission-prometheusrules/validate?timeout=10s": dial tcp <IP_ADDRESS>:443: connect: connection refused
helm.go:84: [debug] Internal error occurred: failed calling webhook "prometheusrulemutate.monitoring.coreos.com": failed to call webhook: Post "https://tobs-kube-prometheus-stack-operator.monitoring.svc:443/admission-prometheusrules/validate?timeout=10s": dial tcp <IP_ADDRESS>:443: connect: connection refused
failed to create resource
helm.sh/helm/v3/pkg/kube.(*Client).Update.func1
        helm.sh/helm/v3/pkg/kube/client.go:246
helm.sh/helm/v3/pkg/kube.ResourceList.Visit
        helm.sh/helm/v3/pkg/kube/resource.go:32
helm.sh/helm/v3/pkg/kube.(*Client).Update
        helm.sh/helm/v3/pkg/kube/client.go:230
helm.sh/helm/v3/pkg/action.(*Install).performInstall
        helm.sh/helm/v3/pkg/action/install.go:375
runtime.goexit
        runtime/asm_amd64.s:1581
INSTALLATION FAILED
main.newInstallCmd.func2
        helm.sh/helm/v3/cmd/helm/install.go:127
github.com/spf13/cobra.(*Command).execute
        github.com/spf13/cobra@v1.4.0/command.go:856
github.com/spf13/cobra.(*Command).ExecuteC
        github.com/spf13/cobra@v1.4.0/command.go:974
github.com/spf13/cobra.(*Command).Execute
        github.com/spf13/cobra@v1.4.0/command.go:902
main.main
        helm.sh/helm/v3/cmd/helm/helm.go:83
runtime.main
        runtime/proc.go:255
runtime.goexit
        runtime/asm_amd64.s:1581
#> kc get all
NAME                                                         READY   STATUS      RESTARTS        AGE
pod/alertmanager-tobs-kube-prometheus-stack-alertmanager-0   2/2     Running     0               5m34s
pod/alertmanager-tobs-kube-prometheus-stack-alertmanager-1   2/2     Running     0               5m34s
pod/alertmanager-tobs-kube-prometheus-stack-alertmanager-2   2/2     Running     0               5m34s
pod/prometheus-tobs-kube-prometheus-stack-prometheus-0       0/2     Init:0/1    0               5m34s
pod/prometheus-tobs-kube-prometheus-stack-prometheus-1       0/2     Init:0/1    0               5m34s
pod/tobs-connection-secret-rpdwj                             0/1     Completed   0               5m38s
pod/tobs-grafana-c99c96767-9t6s7                             3/3     Running     0               5m39s
pod/tobs-kube-prometheus-stack-operator-7485c776c-qn4k9      1/1     Running     0               5m39s
pod/tobs-kube-state-metrics-79569746c9-vslr2                 1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-7wt2c                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-cnqp2                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-dggg6                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-fnkbh                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-k262s                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-kmsq2                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-kn7vv                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-pnn8p                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-qtwg4                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-vjxw4                      1/1     Running     0               5m39s
pod/tobs-prometheus-node-exporter-vnmr4                      1/1     Running     0               5m39s
pod/tobs-promscale-7c5b5d56d5-szfnn                          1/1     Running     3 (2m21s ago)   5m39s
pod/tobs-timescaledb-0                                       2/2     Running     0               5m38s

NAME                                              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
service/alertmanager-operated                     ClusterIP   None            <none>        9093/TCP,9094/TCP,9094/UDP   5m34s
service/prometheus-operated                       ClusterIP   None            <none>        9090/TCP                     5m34s
service/tobs                                      ClusterIP   <IP_ADDRESS>    <none>        5432/TCP                     5m39s
service/tobs-config                               ClusterIP   None            <none>        8008/TCP                     5m39s
service/tobs-grafana                              ClusterIP   <IP_ADDRESS>   <none>        80/TCP                       5m39s
service/tobs-kube-prometheus-stack-alertmanager   ClusterIP   <IP_ADDRESS>    <none>        9093/TCP                     5m39s
service/tobs-kube-prometheus-stack-operator       ClusterIP   <IP_ADDRESS>   <none>        443/TCP                      5m39s
service/tobs-kube-prometheus-stack-prometheus     ClusterIP   <IP_ADDRESS>    <none>        9090/TCP                     5m39s
service/tobs-kube-state-metrics                   ClusterIP   <IP_ADDRESS>     <none>        8080/TCP                     5m39s
service/tobs-prometheus-node-exporter             ClusterIP   <IP_ADDRESS>   <none>        9100/TCP                     5m39s
service/tobs-promscale                            ClusterIP   <IP_ADDRESS>   <none>        9201/TCP,9202/TCP            5m39s
service/tobs-replica                              ClusterIP   <IP_ADDRESS>   <none>        5432/TCP                     5m39s

NAME                                           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/tobs-prometheus-node-exporter   11        11        11      11           11          <none>          5m39s

NAME                                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/tobs-grafana                          1/1     1            1           5m39s
deployment.apps/tobs-kube-prometheus-stack-operator   1/1     1            1           5m39s
deployment.apps/tobs-kube-state-metrics               1/1     1            1           5m39s
deployment.apps/tobs-promscale                        1/1     1            1           5m39s

NAME                                                            DESIRED   CURRENT   READY   AGE
replicaset.apps/tobs-grafana-c99c96767                          1         1         1       5m39s
replicaset.apps/tobs-kube-prometheus-stack-operator-7485c776c   1         1         1       5m39s
replicaset.apps/tobs-kube-state-metrics-79569746c9              1         1         1       5m39s
replicaset.apps/tobs-promscale-7c5b5d56d5                       1         1         1       5m39s

NAME                                                                    READY   AGE
statefulset.apps/alertmanager-tobs-kube-prometheus-stack-alertmanager   3/3     5m34s
statefulset.apps/prometheus-tobs-kube-prometheus-stack-prometheus       0/2     5m34s
statefulset.apps/tobs-timescaledb                                       1/1     5m39s

NAME                               COMPLETIONS   DURATION   AGE
job.batch/tobs-connection-secret   1/1           6s         5m39s
#> kc describe pod/prometheus-tobs-kube-prometheus-stack-prometheus-0
Name:           prometheus-tobs-kube-prometheus-stack-prometheus-0
Namespace:      monitoring
Priority:       0
Node:           kwvm1/10.x.y.z
Start Time:     Fri, 16 Sep 2022 09:03:52 +0200
Labels:         app.kubernetes.io/instance=tobs-kube-prometheus-stack-prometheus
                app.kubernetes.io/managed-by=prometheus-operator
                app.kubernetes.io/name=prometheus
                app.kubernetes.io/version=2.38.0
                controller-revision-hash=prometheus-tobs-kube-prometheus-stack-prometheus-bc8d6769d
                operator.prometheus.io/name=tobs-kube-prometheus-stack-prometheus
                operator.prometheus.io/shard=0
                prometheus=tobs-kube-prometheus-stack-prometheus
                statefulset.kubernetes.io/pod-name=prometheus-tobs-kube-prometheus-stack-prometheus-0
Annotations:    kubectl.kubernetes.io/default-container: prometheus
Status:         Pending
IP:
IPs:            <none>
Controlled By:  StatefulSet/prometheus-tobs-kube-prometheus-stack-prometheus
Init Containers:
  init-config-reloader:
    Container ID:
    Image:         quay.io/prometheus-operator/prometheus-config-reloader:v0.59.1
    Image ID:
    Port:          8080/TCP
    Host Port:     0/TCP
    Command:
      /bin/prometheus-config-reloader
    Args:
      --watch-interval=0
      --listen-address=:8080
      --config-file=/etc/prometheus/config/prometheus.yaml.gz
      --config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml
      --watched-dir=/etc/prometheus/rules/prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Limits:
      cpu:     200m
      memory:  50Mi
    Requests:
      cpu:     100m
      memory:  50Mi
    Environment:
      POD_NAME:  prometheus-tobs-kube-prometheus-stack-prometheus-0 (v1:metadata.name)
      SHARD:     0
    Mounts:
      /etc/prometheus/config from config (rw)
      /etc/prometheus/config_out from config-out (rw)
      /etc/prometheus/rules/prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0 from prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0 (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-2mdgw (ro)
Containers:
  prometheus:
    Container ID:
    Image:         quay.io/prometheus/prometheus:v2.38.0
    Image ID:
    Port:          9090/TCP
    Host Port:     0/TCP
    Args:
      --web.console.templates=/etc/prometheus/consoles
      --web.console.libraries=/etc/prometheus/console_libraries
      --storage.tsdb.retention.time=1d
      --config.file=/etc/prometheus/config_out/prometheus.env.yaml
      --storage.tsdb.path=/prometheus
      --web.enable-lifecycle
      --web.external-url=http://tobs-kube-prometheus-stack-prometheus.monitoring:9090
      --web.route-prefix=/
      --web.config.file=/etc/prometheus/web_config/web-config.yaml
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Requests:
      cpu:        40m
      memory:     400Mi
    Liveness:     http-get http://:http-web/-/healthy delay=0s timeout=3s period=5s #success=1 #failure=6
    Readiness:    http-get http://:http-web/-/ready delay=0s timeout=3s period=5s #success=1 #failure=3
    Startup:      http-get http://:http-web/-/ready delay=0s timeout=3s period=15s #success=1 #failure=60
    Environment:  <none>
    Mounts:
      /etc/prometheus/certs from tls-assets (ro)
      /etc/prometheus/config_out from config-out (ro)
      /etc/prometheus/rules/prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0 from prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0 (rw)
      /etc/prometheus/web_config/web-config.yaml from web-config (ro,path="web-config.yaml")
      /prometheus from prometheus-tobs-kube-prometheus-stack-prometheus-db (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-2mdgw (ro)
  config-reloader:
    Container ID:
    Image:         quay.io/prometheus-operator/prometheus-config-reloader:v0.59.1
    Image ID:
    Port:          8080/TCP
    Host Port:     0/TCP
    Command:
      /bin/prometheus-config-reloader
    Args:
      --listen-address=:8080
      --reload-url=http://<IP_ADDRESS>:9090/-/reload
      --config-file=/etc/prometheus/config/prometheus.yaml.gz
      --config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml
      --watched-dir=/etc/prometheus/rules/prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Limits:
      cpu:     200m
      memory:  50Mi
    Requests:
      cpu:     100m
      memory:  50Mi
    Environment:
      POD_NAME:  prometheus-tobs-kube-prometheus-stack-prometheus-0 (v1:metadata.name)
      SHARD:     0
    Mounts:
      /etc/prometheus/config from config (rw)
      /etc/prometheus/config_out from config-out (rw)
      /etc/prometheus/rules/prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0 from prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0 (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-2mdgw (ro)
Conditions:
  Type              Status
  Initialized       False
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  prometheus-tobs-kube-prometheus-stack-prometheus-db:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  prometheus-tobs-kube-prometheus-stack-prometheus-db-prometheus-tobs-kube-prometheus-stack-prometheus-0
    ReadOnly:   false
  config:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  prometheus-tobs-kube-prometheus-stack-prometheus
    Optional:    false
  tls-assets:
    Type:                Projected (a volume that contains injected data from multiple sources)
    SecretName:          prometheus-tobs-kube-prometheus-stack-prometheus-tls-assets-0
    SecretOptionalName:  <nil>
  config-out:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0
    Optional:  false
  web-config:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  prometheus-tobs-kube-prometheus-stack-prometheus-web-config
    Optional:    false
  kube-api-access-2mdgw:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  5m56s                default-scheduler  0/11 nodes are available: 11 pod has unbound immediate PersistentVolumeClaims. preemption: 0/11 nodes are available: 11 Preemption is not helpful for scheduling.
  Normal   Scheduled         5m55s                default-scheduler  Successfully assigned monitoring/prometheus-tobs-kube-prometheus-stack-prometheus-0 to kwrctvm1
  Warning  FailedMount       3m52s                kubelet            Unable to attach or mount volumes: unmounted volumes=[prometheus-tobs-kube-prometheus-stack-prometheus-db], unattached volumes=[config-out prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0 kube-api-access-2mdgw tls-assets prometheus-tobs-kube-prometheus-stack-prometheus-db web-config config]: timed out waiting for the condition
  Warning  FailedMount       96s                  kubelet            Unable to attach or mount volumes: unmounted volumes=[prometheus-tobs-kube-prometheus-stack-prometheus-db], unattached volumes=[prometheus-tobs-kube-prometheus-stack-prometheus-db web-config config config-out prometheus-tobs-kube-prometheus-stack-prometheus-rulefiles-0 kube-api-access-2mdgw tls-assets]: timed out waiting for the condition
  Warning  FailedMount       3s (x10 over 5m43s)  kubelet            MountVolume.MountDevice failed for volume "pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184" : rpc error: code = Internal desc = Waiting for pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184's CVC to be bound
#> kc get -n openebs cvc | grep "pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184"
pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184              Pending   6m28s
#> kc describe -n openebs cvc | grep "pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184"
Name:         pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184
              openebs.io/volumeID: pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184
  Warning  Provisioning  87s (x26 over 7m3s)  cstorvolumeclaim-controller  CStorVolume.cstor.openebs.io "pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184" is invalid: metadata.labels: Invalid value: "prometheus-tobs-kube-prometheus-stack-prometheus-db-prometheus-tobs-kube-prometheus-stack-prometheus-0": must be no more than 63 characters
#> kc get pvc
NAME                                                                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS     AGE
prometheus-tobs-kube-prometheus-stack-prometheus-db-prometheus-tobs-kube-prometheus-stack-prometheus-0   Bound    pvc-ababcc46-3f79-4410-b3d9-a2c6d3bf6184   8Gi        RWO            cstor-csi-disk   19m
prometheus-tobs-kube-prometheus-stack-prometheus-db-prometheus-tobs-kube-prometheus-stack-prometheus-1   Bound    pvc-73283d5a-e136-45b0-bfa8-ed31e38153aa   8Gi        RWO            cstor-csi-disk   19m
storage-volume-tobs-timescaledb-0                                                                        Bound    pvc-2d47da48-f18e-41d9-838a-19d4f7e0ddf3   150Gi      RWO            cstor-csi-disk   19m
tobs-grafana                                                                                Bound    pvc-71d7144a-c6a2-4681-b1cf-996d8b8e7438   10Gi       RWO            cstor-csi-disk   19m
wal-volume-tobs-timescaledb-0                                                                            Bound    pvc-803a46be-d60a-4b28-9062-4a25a90df8d2   20Gi       RWO            cstor-csi-disk   19m

I fixed command line : kube-prometheus-stack.prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.metadata.name instead of kube-prometheus-stack.storageSpec.volumeClaimTemplate.metadata.name
I removed failing webhooks to fix the installation failure but still the same issue.
Any other idea to workaround ?

The PR I created (https://github.com/prometheus-community/helm-charts/pull/2415) to allow you to set the PVC name through kube-prometheus-stack was just merged.  So once tobs is updated to use that version you should be able to template the PVC names of the volumes that are created with kube-prometheus-stack.

Thanks, I'll keep an eye on new tobs releases and give it a try.

Fixed !


event for when hats are started for extensions

adds an event that is emitted by the runtime when hats are started so that extensions can do stuff with it

seems fine to me, could be useful


Infinite recursion loop when using DynamicRelationField with embed=True

I have two serializer classes: FolderSerializer and FileSerializer, see below. I want to include the full representation of any parent folder by default in subfolders, but in doing so I get an infinite recursion loop in filters.py going from line 339 -> line 405 -> line 495 -> line 339 etc. I do not have a loop in my object hierarchy, even when visiting the detail page of a folder without parent (=None) I get this issue. Setting a depth on the Meta class does not help, when changing to the reverse relation (including subfolders in parents) I get a stack overflow error in python resulting in 'Abort trap: 6'.
class FolderSerializer(BaseSerializer):
    files = DynamicRelationField("FileSerializer", many=True, deferred=True)
    parentFolder = DynamicRelationField("FolderSerializer", embed=True)

    class Meta:
        model = Folder
        fields = ('id', 'parentFolder', 'name', 'files')
        read_only_fields = ('id', 'parentFolder', 'files')

class FileSerializer(BaseSerializer):
    class Meta:
        model = File
        fields = ('id',)     // Just for testing, only include id

class Folder(models.Model):
    id = models.IntegerField(primary_key=True)
    owner = models.ForeignKey("User", related_name="folders")
    parentFolder = models.ForeignKey('Folder', related_name='subfolders', blank=True, null=True)
    name = models.CharField(max_length=40, default="Unnamed folder")

Thanks for reporting this @FalFire; haven't come across this before. Have you tried removing embed=True to see if the issue is specific to embedding?

Yes, that works fine but of course that does not accomplish my goal. I can for now do without the embedding but the bug itself stands.

Op 6 nov. 2016 om 21:22 heeft Anthony Leontiev<EMAIL_ADDRESS>het volgende geschreven:
Thanks for reporting this @FalFire; haven't come across this before. Have you tried removing embed=True to see if the issue is specific to embedding?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Got it, just figuring out where to focus in on this bug. The fact that its only relevant for embed=True narrows it down significantly.

This may be a bug in the serializer cache. What happens if you disable ENABLE_SERIALIZER_CACHE in settings?

@FalFire I'm having trouble reproducing this on master; I tried to add a new test case using our "Cat" model, which has a similar self-relationship ("parent" and "kittens"), and two new embedded API fields: "embed_parent" and "embed_kittens".
I was not able to trigger an error and got the following responses back:
# kitten with parent
{"cat":{"embed_parent":{"id":3,"name":"Parent"},"id":4,,"name":"Kitten"}}
# parent with kittens
{"cat":{"name":"Parent","id":3,"embed_kittens":[{"id":4,,"name":"Kitten"}]}}

What versions of DRF/DREST/Django are you using?


Epic: Mixin Elements Core

Here is a draft implementation for #671
Feel free to post your thoughts/suggestions here and in PM.

:tada: This PR is included in version 4.0.0-beta.2 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Admin role can't edit the menu?

Not sure if this is a bug or something on my end. Is the Admin role supposed to be able to edit the menu? I get a 403, User does not have the right roles.
Here is the seeder from your code:
    $user = User::create([
        'name' => 'AJ',
        'email' =><EMAIL_ADDRESS>        'email_verified_at' => now(),
        'password' => 'taken out for security', // password
        'remember_token' => Str::random(10),
        'menuroles' => 'user,admin'
    ]);
    $user->assignRole('admin');

Sorry, this was my error. I will try to fix longer before posting.


Add missing CRD entries for Application CRD

Describe the bug
I can see few differences between the CRDs(specifically the Application CRD) in the GitOps operator and Gerrit. We need to update the CRDs in this repo.
Application CRD in the Gerrit which is in line with the Application CRD of upstream Argo CD project.
https://code.engineering.redhat.com/gerrit/gitweb?p=openshift-gitops.git;a=blob;f=distgit/containers/openshift-gitops-operator-bundle/manifests/argoproj.io_applications.yaml;h=e455a6283f2931a9acf22ae24d8d541ea43d7867;hb=refs/heads/gitops-1.5-rhel-8#l457
To Reproduce
Steps to reproduce the behavior:

Compare the Application CRD in both Gerrit and GitOps operator.

Expected behavior
Application CRD should be similar in Gerrit, GitOps Operator and corresponding release of Argo CD upstream project.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

#299 is a result of this issue.

fixed


Curious about hardware specs

Thanks for your work! I'm curious about the hardware setup you used for this project - what GPU and VRAM did you need?

@jonxuxu  Thank you for reading our work.
We have used two Rtx Quadro 5000 (16GB) for training the GAN network. The total VRAM takes around 12-14 GB for training with batch size 128. As we have used data distributed parallel training, so each GPU has a batch size of around 64.


Backport try_chunks to 0.3

#2438 is marked as 0.3-backport: pending.
This is it. :) (cherry-picking 5f610f8e286080b6ae31f1285648ccd559b4c3bf)
Resolves #1947 (which specifically mentionned 0.3)

CI fails appear to be unrelated

Ok. Do you have an idea when we can expect that particular backport to be released?

Published 0.3.16.

Do you have an idea when we can expect that particular backport to be released?

In futures-rs, I usually create a new release in the following cases:

There was an unreleased patch to fix regression, unsoundness, or security issue. (e.g., 0.3.12)
Someone requested a new release. (e.g., 0.3.16)
Maintainer (mainly @taiki-e) felt that there were many unreleased patches, or wanted to create a new release for some reason. (e.g., 0.3.15)


pause, resume function not working

Prerequisites

[x] Can you reproduce the problem?
[x] Are you running the latest version?
[x] Did you check the documentation?
[x] Did you perform a cursory search?

For more information, see the contributing guide.
Description
When we use these functions:
tts.pause_audio()
tts.resume_audio()
audio playback does not pause and resume during playback, but instead the functions were executed after playback is finished
Steps to Reproduce
Run:
tts.speak_streamed("test pause resume")
tts.pause_audio()
input("Press enter to resume")
tts.resume_audio()
Expected behavior: [What you expected to happen]
audio is played until finished then paused
Actual behavior: [What actually happened]

Again. Test test test this logic.

import threading
import time
import sounddevice as sd
import numpy as np

class AbstractTTS(ABC):
    def __init__(self):
        super().__init__()
        self.playing = threading.Event()      # Controls playback state
        self.paused = threading.Event()       # Controls pause state
        self.paused.clear()                   # Not paused by default
        self.playing.clear()                  # Not playing by default
        self.stream = None
        self.audio_data = None
        self.position = 0

    def speak_streamed(self, text: str) -> None:
        """Starts streaming audio playback."""
        self.audio_data = self.synth_to_bytes(text)  # Assume PCM bytes
        self.playing.set()  # Start playback
        self.position = 0  # Reset playback position

        # Start the playback thread
        playback_thread = threading.Thread(target=self._play_audio)
        playback_thread.start()

    def _play_audio(self):
        """Plays audio and checks for pause/resume state."""
        with sd.OutputStream(samplerate=22050, channels=1, dtype="int16") as stream:
            while self.position < len(self.audio_data):
                # Check if the playback should be paused
                self.paused.wait()  # Blocks here if paused

                # Get the next chunk of audio
                chunk_size = 1024
                chunk = self.audio_data[self.position:self.position + chunk_size]
                self.position += chunk_size

                # Convert to numpy array and play
                if chunk:
                    stream.write(np.frombuffer(chunk, dtype=np.int16))

                time.sleep(0.01)  # Adjust for smoother playback control

            self.playing.clear()  # Playback finished

    def pause_audio(self):
        """Pauses audio playback by clearing the paused event."""
        self.paused.clear()
        print("Audio paused")

    def resume_audio(self):
        """Resumes audio playback by setting the paused event."""
        self.paused.set()
        print("Audio resumed")

No. My comment here I think is whack. @Chafid  this is taking more than 5 minutes.. its yours!


TypeError: Cannot set property 'updated' of undefined

Describe the bug
Running DEBUG=tuya-mqtt:* node tuya-mqtt.js ends in the following output/exception and the program exits:
tuya-mqtt:info Connection established to MQTT server +0ms
  tuya-mqtt:tuyapi Search for device id xxx +0ms
  tuya-mqtt:tuyapi Found device id xxx +1ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"white","22":300,"23":500,"26":0} +19ms
  tuya-mqtt:tuyapi Connected to device Stehlampe (xxx, xxx, xxx) +986ms
  tuya-mqtt:device-detect Attempting to detect light capabilites and DPS values... +0ms
  tuya-mqtt:device-detect Querying DPS 2 for white/color mode setting... +0ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"white","22":300,"23":500,"26":0} +52ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"white","22":300,"23":500,"26":0} +11ms
  tuya-mqtt:device-detect Detected likely Tuya color bulb at DPS 20-24, checking more details... +62ms
  tuya-mqtt:device-detect Attempting to detect if bulb supports color temperature... +0ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"white","22":300,"23":500,"26":0} +10ms
  tuya-mqtt:device-detect Detected likely color temerature support +10ms
  tuya-mqtt:device-detect Attempting to detect Tuya color format used by device... +1ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"white","22":300,"23":500,"26":0} +12ms
  tuya-mqtt:device-detect Detected Tuya color format HSBHEX +11ms
  tuya-mqtt:discovery Home Assistant config topic: homeassistant/light/xxx/config +0ms
  tuya-mqtt:discovery {
  tuya-mqtt:discovery   name: 'Stehlampe',
  tuya-mqtt:discovery   state_topic: 'tuya/stehlampe/state',
  tuya-mqtt:discovery   command_topic: 'tuya/stehlampe/command',
  tuya-mqtt:discovery   brightness_state_topic: 'tuya/stehlampe/color_brightness_state',
  tuya-mqtt:discovery   brightness_command_topic: 'tuya/stehlampe/color_brightness_command',
  tuya-mqtt:discovery   brightness_scale: 100,
  tuya-mqtt:discovery   hs_state_topic: 'tuya/stehlampe/hs_state',
  tuya-mqtt:discovery   hs_command_topic: 'tuya/stehlampe/hs_command',
  tuya-mqtt:discovery   white_value_state_topic: 'tuya/stehlampe/white_brightness_state',
  tuya-mqtt:discovery   white_value_command_topic: 'tuya/stehlampe/white_brightness_command',
  tuya-mqtt:discovery   white_value_scale: 100,
  tuya-mqtt:discovery   availability_topic: 'tuya/stehlampe/status',
  tuya-mqtt:discovery   payload_available: 'online',
  tuya-mqtt:discovery   payload_not_available: 'offline',
  tuya-mqtt:discovery   unique_id: 'xxx',
  tuya-mqtt:discovery   device: {
  tuya-mqtt:discovery     ids: [ 'xxx' ],
  tuya-mqtt:discovery     name: 'Stehlampe',
  tuya-mqtt:discovery     mf: 'Tuya',
  tuya-mqtt:discovery     mdl: 'RGBTW Light'
  tuya-mqtt:discovery   },
  tuya-mqtt:discovery   color_temp_state_topic: 'tuya/stehlampe/color_temp_state',
  tuya-mqtt:discovery   color_temp_command_topic: 'tuya/stehlampe/color_temp_command',
  tuya-mqtt:discovery   min_mireds: 154,
  tuya-mqtt:discovery   max_mireds: 400
  tuya-mqtt:discovery } +0ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"white","22":300,"23":500,"26":0} +1s
  tuya-mqtt:info Exit code: TypeError: Cannot set property 'updated' of undefined +2s
  tuya-mqtt:tuyapi Disconnected from device Stehlampe (xxx, xxx, xxx) +3ms
  tuya-mqtt:info Exit code: 0 +1s

tuya-cli works fine inside and outside of the docker container:
tuya-cli set --id xxx--key xxx--dps 20 --set false
Set succeeded.

And the lamp turns off.
Software:

OS: https://hub.docker.com/r/openhab/openhab/
Version openHAB 2.5.3 Release Build

Additional context
It worked fine a week ago, coming back to this project and now it throws this error.

Based on the returned DPS values this does not appear to be an RGBTW light, only a white light with color temperature support (TW light).  Can you confirm that this is true or not?

It is a RGBTW light and a week ago I even could set the color via Openhab. It's this lamp: https://www.amazon.de/gp/product/B08BFPGWZ1/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

OK, maybe it's simply not sending RGBTW value because it's in white mode, could you try putting it in color mode with the app and then restarting tuya-mqtt to see if that tickles it back to working?  If it does, then I think I understand what is happening here.

First of all, thank you for your time and help!
Your guess was right. When the lamp is set to a color, the tuya-mqtt is not crashing. I could use the testing sitemap. Here is the log:
tuya-mqtt:info Connection established to MQTT server +0ms
  tuya-mqtt:tuyapi Search for device id xxx +0ms
  tuya-mqtt:tuyapi Found device id xxx +1ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +34ms
  tuya-mqtt:tuyapi Connected to device Stehlampe (xxx, xxx, 9d8fa31a826050a9) +984ms
  tuya-mqtt:device-detect Attempting to detect light capabilites and DPS values... +0ms
  tuya-mqtt:device-detect Querying DPS 2 for white/color mode setting... +0ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +31ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +14ms
  tuya-mqtt:device-detect Detected likely Tuya color bulb at DPS 20-24, checking more details... +44ms
  tuya-mqtt:device-detect Attempting to detect if bulb supports color temperature... +0ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +11ms
  tuya-mqtt:device-detect Detected likely color temerature support +11ms
  tuya-mqtt:device-detect Attempting to detect Tuya color format used by device... +1ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +13ms
  tuya-mqtt:device-detect Detected Tuya color format HSB +12ms
  tuya-mqtt:discovery Home Assistant config topic: homeassistant/light/xxx/config +0ms
  tuya-mqtt:discovery {
  tuya-mqtt:discovery   name: 'Stehlampe',
  tuya-mqtt:discovery   state_topic: 'tuya/stehlampe/state',
  tuya-mqtt:discovery   command_topic: 'tuya/stehlampe/command',
  tuya-mqtt:discovery   brightness_state_topic: 'tuya/stehlampe/color_brightness_state',
  tuya-mqtt:discovery   brightness_command_topic: 'tuya/stehlampe/color_brightness_command',
  tuya-mqtt:discovery   brightness_scale: 100,
  tuya-mqtt:discovery   hs_state_topic: 'tuya/stehlampe/hs_state',
  tuya-mqtt:discovery   hs_command_topic: 'tuya/stehlampe/hs_command',
  tuya-mqtt:discovery   white_value_state_topic: 'tuya/stehlampe/white_brightness_state',
  tuya-mqtt:discovery   white_value_command_topic: 'tuya/stehlampe/white_brightness_command',
  tuya-mqtt:discovery   white_value_scale: 100,
  tuya-mqtt:discovery   availability_topic: 'tuya/stehlampe/status',
  tuya-mqtt:discovery   payload_available: 'online',
  tuya-mqtt:discovery   payload_not_available: 'offline',
  tuya-mqtt:discovery   unique_id: 'xxx',
  tuya-mqtt:discovery   device: {
  tuya-mqtt:discovery     ids: [ 'xxx' ],
  tuya-mqtt:discovery     name: 'Stehlampe',
  tuya-mqtt:discovery     mf: 'Tuya',
  tuya-mqtt:discovery     mdl: 'RGBTW Light'
  tuya-mqtt:discovery   },
  tuya-mqtt:discovery   color_temp_state_topic: 'tuya/stehlampe/color_temp_state',
  tuya-mqtt:discovery   color_temp_command_topic: 'tuya/stehlampe/color_temp_command',
  tuya-mqtt:discovery   min_mireds: 154,
  tuya-mqtt:discovery   max_mireds: 400
  tuya-mqtt:discovery } +1ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +1s
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +12ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +15ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +11ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +20ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +12ms
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +12ms
  tuya-mqtt:state tuya/stehlampe/state ON +0ms
  tuya-mqtt:state tuya/stehlampe/white_brightness_state 97 +4ms
  tuya-mqtt:state tuya/stehlampe/hs_state 120,100 +1ms
  tuya-mqtt:state tuya/stehlampe/color_brightness_state 52 +1ms
  tuya-mqtt:state tuya/stehlampe/hsb_state 120,100,52 +0ms
  tuya-mqtt:state tuya/stehlampe/mode_state colour +0ms
  tuya-mqtt:state tuya/stehlampe/color_temp_state 346 +1ms
  tuya-mqtt:state MQTT DPS JSON: tuya/stehlampe/dps/state ->  {"20":true,"21":"colour","22":970,"23":220,"24":"xxx","26":0} +0ms
  tuya-mqtt:state MQTT DPS20: tuya/stehlampe/dps/20/state ->  true +1ms
  tuya-mqtt:state MQTT DPS21: tuya/stehlampe/dps/21/state ->  colour +0ms
  tuya-mqtt:state MQTT DPS22: tuya/stehlampe/dps/22/state ->  970 +0ms
  tuya-mqtt:state MQTT DPS23: tuya/stehlampe/dps/23/state ->  220 +0ms
  tuya-mqtt:state MQTT DPS24: tuya/stehlampe/dps/24/state ->  xxx +0ms
  tuya-mqtt:state MQTT DPS26: tuya/stehlampe/dps/26/state ->  0 +0ms
  tuya-mqtt:command Received MQTT message ->  {"topic":"tuya/stehlampe/command","message":"OFF"} +0ms
  tuya-mqtt:command Received MQTT command message is a text string +0ms
  tuya-mqtt:command Device xxx received command topic: command, message: off +0ms
  tuya-mqtt:tuyapi Set device xxx -> {"dps":20,"set":false} +38s
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":false} +113ms
  tuya-mqtt:state tuya/stehlampe/state OFF +38s
  tuya-mqtt:state MQTT DPS JSON: tuya/stehlampe/dps/state ->  {"20":false} +1ms
  tuya-mqtt:state MQTT DPS20: tuya/stehlampe/dps/20/state ->  false +0ms
  tuya-mqtt:command Received MQTT message ->  {"topic":"tuya/stehlampe/command","message":"ON"} +2s
  tuya-mqtt:command Received MQTT command message is a text string +2s
  tuya-mqtt:command Device xxx received command topic: command, message: on +0ms
  tuya-mqtt:tuyapi Set device xxx -> {"dps":20,"set":true} +2s
  tuya-mqtt:tuyapi Received JSON data from device xxx -> {"20":true} +120ms
  tuya-mqtt:state tuya/stehlampe/state ON +2s
  tuya-mqtt:state MQTT DPS JSON: tuya/stehlampe/dps/state ->  {"20":true} +0ms
  tuya-mqtt:state MQTT DPS20: tuya/stehlampe/dps/20/state ->  true +1ms

OK, at least that gives me something to go on.  I'll have to think of a way to fix this, but the fact that the device just doesn't return any DPS 24 value just because it's in white mode is certainly unexpected.  That means that the autodetection of the color type will always fail if the bulb is in white mode when tuya-mqtt starts, so I'll have to implement something in the detection logic so that, if it gets not value here, it just assumes a format based on the mode switch DPS # and then initializes a base DPS 24 value even if no value is returned when queried.
Shouldn't be too hard but, unfortunately, time has not been on my side with this project lately, and I have a number of outstanding issues to address.  I'll try to see if I can code up something for this in the next few days.

Thank you for this. Take your time and let me know if I can help in any way!

I pushed 3.0.2 with some enhanced logic to attempt to deal with this issue when the light is in white mode and avoid the undefined property.  I'd appreciate it if you could give it a spin when you get a chance and let me know if it works for you since I can't easily test this as none of my devices behave this way.

I pushed 3.0.2 with some enhanced logic to attempt to deal with this issue when the light is in white mode and avoid the undefined property.  I'd appreciate it if you could give it a spin when you get a chance and let me know if it works for you since I can't easily test this as none of my devices behave this way.

Hey tsightler, thank you so much for your work. I switched to OH 3 in the meantime, so I had to setup the whole ting again but after some troubles I can control the lamp via OH. Is there a way that I can thank you with a coffee or something?

Hey tsightler, thank you so much for your work. I switched to OH 3 in the meantime, so I had to setup the whole ting again but after some troubles I can control the lamp via OH. Is there a way that I can thank you with a coffee or something?

Thanks for letting me know, I'll close this now.  No need for further thank me but, if you feel like it, I always encourage people to contribute to a charity or some cause which you believe in or offer any simple, kind gesture to others who might need it after what has been a difficult year for many people across the world.

Thanks for letting me know, I'll close this now.  No need for further thank me but, if you feel like it, I always encourage people to contribute to a charity or some cause which you believe in or offer any simple, kind gesture to others who might need it after what has been a difficult year for many people across the world.


Dashboard is not available

Today I found I can't browse our dashboards created before.
When opening the dashboards, following pop-up appeared.

And clicking "承認(Approval)", then following pop-up appeared.

What happened on "connector" ? (Honestly, I'm not familiar with "connector")
Maybe is it related to "publishing connector" ? -> https://github.com/GoogleCloudPlatform/fourkeys/issues/42#issuecomment-772827518
Or anything wrong with me ?

Hi! If you previous created a dashboard, you should be able to find it in datastudio.google.com.
The connector is used for setting up new dashboards.

I have three dashboards, created on 2020/10/14, 2020/10/21, and 2020/11/24.
Recently I came to be unable to see any data on these all dashboards.

Ah - Google translated to "Connector approval is required to view this component in the data portal"
I haven't seen this before.  When did it start?  What happens when you click on "Approve Now"?  Is that the screenshot you shared earlier?
In the edit view of the dashboard, what happens when you click here?

It should open up this view of the data connection and if you click Edit Connection, you should be able to reconnect.

Then click Reconnect.

Can you also confirm that your data is still in BigQuery?  If you go to the BigQuery Console and select your project, do all the tables have data in them?

Thank you.  We're working on getting the connector verified.  In the meantime, if you feel confident in doing so, you can click "Advanced" and move forward with authorizing the connector.  The account listed is one of my accounts<EMAIL_ADDRESS>
If you do not want to authorize the connector, I have published all of the scripts for the charts in METRICS.md
Additionally, I have an open PR with the connector code, so you can review it and decide whether or not you want to authorize the permission.  https://github.com/GoogleCloudPlatform/fourkeys/pull/87/files

Hi Takumi! Following up to see if this is resolved.  Also would like to invite you to join our [Slack channel]((https://googlecloud-community.slack.com/archives/fourkeys) if you want to chat there and troubleshoot it.

Hi Takumi,
I'm afraid I don't know when the connector will be verified.  If you're happy to wait, I'll update this issue when it's verified.  Otherwise, I would recommend using one of the other approaches.
Best,
Dina

Still waiting the connector verified, I'm trying BigQuery connector with Custom Query for a while on (a few, not all of) our dashboards, probably it works.

Still waiting the connector verified, I'm trying BigQuery connector with Custom Query for a while on (a few, not all of) our dashboards, ~probably~ it works.

We were starting from scratch and weren't comfortable installing the unverified connector.  We used the following work-around, inspired by the post of @mikutas above (thank you!).
In Google Data Studio:

Create a new "Data source"
Choose the "BigQuery" connector
Choose the custom query option
Select fourkeys-xyz as the billing project
Paste the contents of DASHBOARD_QUERY from connector/data.gs into the query box
Click the "Connect" button in the top right corner
Rename your data source to something memorable

Then to create the dashboard report:

Go to: https://datastudio.google.com/reporting/9f328fb6-955f-431b-8761-0eff6e3ae6ed (this is the public read-only template for the four keys dashboard)
Click the "Make a copy of this report" button
Choose the data source created in the prior section
Customize the new dashboard (name, colors, etc.)
Click the "View" button
Share with co-workers

Thank you so much for posting these steps!
I apologize for the delay in the verification.  App Scripts are a bit of an edge case for most of our approvals processes so it's taking some time to navigate our internal systems.

Tried a few weeks ago, and saw the warning above... today, I am totally blocked.
"
This app is blocked
This app tried to access sensitive info in your Google Account. To keep your account safe, Google blocked this access.
"

Hi @dinagraves Please I am having issue with connecting the datasource with App blocked and there is no option for 'advanced' so I can bypass it as advised   . I have used 3 different browsers . What do you advise

@bukecious  I'm sorry to hear that!  You have a couple options - you can try using the new dashboard in Grafana: https://github.com/GoogleCloudPlatform/fourkeys/pull/204
The datastudio connector is deprecated and the install will no longer redirect to it as soon as this PR is approved and merged.
Alternatively, you can load the script as described here https://github.com/GoogleCloudPlatform/fourkeys/issues/86#issuecomment-823574890

@bukecious I'm sorry to hear that! You have a couple options - you can try using the new dashboard in Grafana: #204
The datastudio connector is deprecated and the install will no longer redirect to it as soon as this PR is approved and merged.
Alternatively, you can load the script as described here #86 (comment)

Thank you! I will try it out

@bukecious I'm sorry to hear that! You have a couple options - you can try using the new dashboard in Grafana: #204
The datastudio connector is deprecated and the install will no longer redirect to it as soon as this PR is approved and merged.
Alternatively, you can load the script as described here #86 (comment)

Thank you! I will try it out

Thanks @dinagraves , I used the method by @sbrudz and it worked great . Thanks you both!

The Grafana dashboards have been added to the installation.  This issue is now obsolete.


OCM-7143 Review CI profiles for day1 coverage

What this PR does / why we need it:
Set case ids in profiles + add some more coverage
Which issue(s) this PR fixes
https://issues.redhat.com/browse/OCM-7143
Change type

[ ] New feature
[ ] Bug fix
[ ] Build
[x] CI
[ ] Documentation
[ ] Performance
[ ] Refactor
[ ] Style
[ ] Unit tests
[ ] Subsystem tests

Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.

/approve

/lgtm


reintroduce xwayland is_unmanaged

https://github.com/swaywm/wlroots/pull/1145 removed the
wlr_xwayland_is_unamanged function while fixing OR, because it was
belieived that it's supposed to work around the broken OR handling.
This was a misunderstanding. is_unmanaged is (while sort of a hack)
intended to work around inherent differences between "real" X sessions
and our Xwayland/wayland situation.
The main reason it exists is to support applications like rofi and dzen,
while not handing focus to other OR windows (which should not be
required).
Traditionally, these applications just grabbed input from X and didn't
need to be focused by any logic in the WM. Which of course doesn't work
in wayland compositors. So we have to give them focus in some way.
Giving every OR window focus, breaks other applications that don't
expect focus to change.
A testcase that was pointed out to me where wlr_xwayland_is_unamanged was
breaking things is https://github.com/swaywm/sway/issues/2128 (syncplay,
gitk, gitgui)
Supposedly it broke using keyboard to navigate the menus.
I can't reproduce this with this patch. The popups can be navigated as
long as the parent has focus.
Testing:
Requires to merge https://github.com/swaywm/wlroots/pull/1164 since Xwayland can't be used at all without.
As I hope the commit coment points out, this is a focus issue. With this patch applied, dmenu/rofi will work fine. I will retract (or improve) when I get a counter-example. @emersion  you are up!
gitk is somewhat broken, but thats unrelated to this patch. (Moving cursor to different menu while menu is shown is funky)

I always have the best thoughts, when I leave the PC:
It would probably be closer to reality to have a "fake" X window managed by the compositor that receives focus, since it's not actually the window, but Xwayland that needs to receive inputs. But keeping it on the window should provide more feasable with handling focus changes once it unmapps.

LGTM. Can you add a comment to the function explaining how to use it, when to use it? Maybe we should consider renaming it too: rofi is unmanaged.

LGTM, I also think we need to have this distinction

Added a bunch of comment to the header, renamed to something that hopefully makes it more obvious and inverted the logic to fit the name better.

Thanks!


Update Cats to 0.6.1

That was fast :)

[Current coverage][cc-pull] is 99.64%

Merging [#99][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master        #99   diff @@
==========================================
  Files            21         21
  Lines           563        563
  Methods         542        542
  Messages          0          0
  Branches         21         21
==========================================
  Hits            561        561
  Misses            2          2
  Partials          0          0

Powered by Codecov. Last updated by [d8865e5...cdc1ccd][cc-compare]
[cc-base-branch]: https://codecov.io/gh/travisbrown/iteratee/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/travisbrown/iteratee/compare/d8865e5a391cadb886394524895083547e516a69...cdc1ccd68908f02124ce157c9442688a06f362f4?src=pr
[cc-pull]: https://codecov.io/gh/travisbrown/iteratee/pull/99?src=pr


fix(NODE-4262): make startSession work without a connection

Description
What is changing?

Many test fix ups were needed for this change
MongoClient is now the responsible for ClientSessions instead of the topology which only exist after connecting

The MongoClient took on the logic for session clean up that was in the topology.

Since sessions are connectionless, cursors can obtain a session upon creation. This removes some logic where cursors had to perform server selection to check for session support. This can now be done just at operation time.

What is the motivation for this change?
Now that connect is automatic and since server sessions are created lazily we can allow the API to make sessions before the client has been connected.
Double check the following

[x] Ran npm run check:lint script
[x] Self-review completed using the steps outlined here
[x] PR title follows the correct format: <type>(NODE-xxxx)<!>: <description>
[x] Changes are covered by tests
[x] New TODOs have a related JIRA ticket

Test changes summary:

M test/integration/causal-consistency/causal_consistency.prose.test.js
skipLeakTests is no longer part of the leak checker, explicit sessions should always be cleaned up, clients should always be closed. Removed usage
M test/integration/change-streams/change_stream.test.ts

Removed skipLeakTests usage
destorying the stream at the should support piping of Change Streams cleans up the change stream, could probably use end but that's asynchronous, would require done/promisifying
made afterEach async/await better stack trace when I was fixing a bug
made beforeEach async/await that sets up mockServer, better TS, better stack trace

M test/integration/connection-monitoring-and-pooling/connection.test.js

Simplified an afterEach that cleans up clients. Introduced behavior where if close throws it won't clean up both. (see comment)
async/await test connect bad auth test while debugging it

M test/integration/crud/misc_cursors.test.js

remove skipLeakTests usage
async/await while debugging and Test assertion changed to check activeSessions saved on MongoClient.s

should return implicit session to pool when client-side cursor exhausts results on initial query
should return implicit session to pool when client-side cursor exhausts results after a getMore

M test/integration/gridfs/gridfs_stream.test.js

Removed skipLeakChecks usage (overly strict topology requirements and redundant comments removed too)

M test/integration/load-balancers/load_balancers.spec.test.js

Removed LB's bespoke timeout config. This was helpful during testing when we were implementing LB but it overrides the timeout that you provide on the CLI, which I sometimes need to set to 0 when debugging

M test/integration/node-specific/db.test.js

Deleted test that doesn't offer more coverage than what we have in the connect/close behavior tests.

M test/integration/node-specific/examples/causal_consistency.test.js

Remove skipLeakTests

M test/integration/node-specific/mongo_client.test.ts

Add sends endSessions with noResponse set test, ensure we don't wait for MongoDB to reply to this command

M test/integration/node-specific/operation_example.test.js

Deleted Should correctly connect with default replicasetNoOption test because it tested against the Topology directly, and asserted nothing. By name it sounds like its intention was to cover an SDAM state which is covered in spec tests
Drive by assertion improvements in Should correctly rewind and restart cursor while debugging

D test/integration/node-specific/topology.test.js

Reverting this deletion, although I doubt the merit of testing this internal behavior without more coverage that explains what the states assert about the topology. (not public API, not Spec-ed)

M test/integration/sessions/sessions.test.ts

Remove skipLeakTests
should send endSessions for multiple sessions changed assertion to use the activeSessions on MongoClient
session support detection - new suite of tests stubs topology to support/not support sessions, proves that we will omit the session if the topology does not support it

M test/integration/shared.js

TS fix

D test/integration/shared.test.js

Removed, all the tests do not clean up properly and the helpers they test are being removed in the follow up "remove connect from tests" PR

M test/integration/transactions/transactions.test.ts

Use client in place of topology

M test/tools/cluster_setup.sh

oops!

M test/tools/common.js

Unused helper can be deleted

M test/tools/runner/hooks/configuration.js

Add process.pid to print out helps to quickly identify test run to send it signals (did you know if you send SIGUSR1 to node js it opens the debugger? so cool!)

M test/tools/unified-spec-runner/runner.ts

Remove skipLeakTests

M test/unit/collection.test.ts

Use async/await in hook, better TS better stack while debugging

A test/unit/cursor/abstract_cursor.test.ts

Consolidated cursor behavior tests related to sessions into an abstract_cursor test

D test/unit/cursor/aggregation_cursor.test.js

Tests rewritten in abstract_cursor

D test/unit/cursor/find_cursor.test.js

Tests rewritten in abstract_cursor

M test/unit/sessions.test.js

Utilize a client where ever topology was used


Team update - Feb 01, 2023

This is a @Quansight-Labs/czi-a11y-grant team sync 🎉🎉🎉! This is a way for the Team Members to provide status reports on what they've been up to this week and request help and attention for things they are working on. This issue will be closed at the end of the day.
Copy and paste the template below, and answer questions as you wish!

Response Template
**Thanks I'd like to give 🙌**
- So-and-so helped me out a lot with foo...

**Updates from last week :heavy_check_mark:**
- I worked towards deliverable: <link-to-deliverable>

**Challenges I faced and things I'd like assistance with 🙏**
- I had a hard time figuring out ...

**My availability for next week**
- I'll be off on foo day...

**Important items for discussion 💬**
- I have a question about goal <link-to-goal>
- Can @foo give a comment on issue #NN ?
- I opened #NN for discussion, please chime in
- I need to discuss foo

:mag: Needs Triage
The Needs Triage issues require an initial assessment and labeling.
No issues need triage! 🎉
:dart: Project boards
Please make sure the boards reflect the current status of the project.
Jupyter a11y grant project

Updates from last week :heavy_check_mark:

I did some maintenance stuff in accessibility-pygments

I added Tania as maintainer to PyPI and conda-forge

I continue doing the collapse menu work

Darian already approved the PR - he just found two bugs, one that's not related to my PR and other one that is. So I'm working right now in finding that bug
I already added an optional flag for downstream libraries to decide if they want to use the collapse menu or not.

Challenges I faced and things I'd like assistance with 🙏

I'm trying to find the source of the bug 😅

My availability for next week

I'll be here

Important items for discussion 💬

I don't have anything for today (:

Thanks I'd like to give 🙌
Updates from last week :heavy_check_mark:

#192 Updated test notebook and opened PR to add notebook to the testing repo. I imagine this needs to go somewhere more specific or to a different branch, but I figured it's a start.
#184 draft is still not done. 😦 End-of-week remains my goal timeline.

Challenges I faced and things I'd like assistance with 🙏

I don't think I have anything now.

My availability for next week

I'll be here all week. I've been a bit occupied with another project, though, and that may continue needing some extra focus.

Important items for discussion 💬

I don't think I have anything right now.

Thanks I'd like to give 🙌

Thank you all for your patience with me as I get better.

Updates from last week :heavy_check_mark:

Staying alive. Nothing new for me since our last team update. I've been heads down on the Quansight website and Lab annual report.

My availability for next week

Here

Important items for discussion 💬

How much effort should go into accessibility fixes in future releases of 3 versus 4? Context: JupyterLab 3.6.0rc1 - style changes #13870.

@gabalafou
- He is still alive after being super sick 😷
- Planning to work on the tab trap doc for the accessibility meeting
- when do JLab sunset or stop maintaining previous versions?
- Focus on a11y work on master (which is 4.x now)
@isabela-pf
- @trallard to review https://github.com/Quansight-Labs/JupyterLab-user-testing/pull/1
- Places where we cannot pay people: India, Estonia, and most of LatAm so we can start recruiting testers
@steff456
- maintenance in our pygments repo
- 🍔  menu is moving forward -> tests + bug squashing needed
- next: pygments fixes
- need to improve the highlight colours further so that they are WCAG conformant https://www.w3.org/TR/WCAG22/#contrast-minimum

Related to question of focus for accessibility fixes and versions.

JupyterLab releases
jupyterlab/jupyterlab #12397 Add version support timelines to documentation


Compilation of the unify-matter-bridge failed

Description of the issue
I followed https://siliconlabs.github.io/matter/latest/unify/matter-bridge/readme_building.html.
Cloned matter from https://github.com/SiliconLabs/matter.git (version: v2.2.0-1.2)
But the Matter environment activation  failed. I fixed it manually modifying scripts/setup/constraints.txt (https://github.com/project-chip/connectedhomeip/pull/30987/commits/b867178db386520ca358e9079d9c09464bab5002) . After that I successfully activated the matter environment.
But Compilation of the unify-matter-bridge failed:
(base) root@71549e98dd1a:/matter/silabs_examples/unify-matter-bridge/linux# ninja -C out/arm64
ninja: Entering directory `out/arm64'
[15/814] ACTION //:get_chip_version(//third_party/connectedhomeip/build/toolchain/linux:linux_arm64_gcc)
FAILED: gen/include/chip_version.hpp
python /matter/silabs_examples/unify-matter-bridge/scripts/gen_version_info.py gen/include/chip_version.hpp
Traceback (most recent call last):
File "/matter/silabs_examples/unify-matter-bridge/scripts/gen_version_info.py", line 53, in
generate_git_info(output_file)
File "/matter/silabs_examples/unify-matter-bridge/scripts/gen_version_info.py", line 19, in generate_git_info
version = subprocess.check_output(['git', 'describe', '--tags'], text=True, stderr=subprocess.DEVNULL).strip().split('-', 1)[1]
IndexError: list index out of range
[20/814] ACTION //third_party/connectedhomeip/src/lib/asn1:gen_a...ird_party/connectedhomeip/build/toolchain/linux:linux_arm64_gcc
ninja: build stopped: subcommand failed.
WSL2
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy
Steps to reproduce the issue
While compiling the unify-matter-bridge

Device type(s) and network topology
unify-matter-bridge
Proposed solution(s)
No response
SMG version
release_2.2.0-1.2
Protocol(s)
Wi-Fi
Hardware platform(s)
Host Linux
Development platform(s)
No response
Captured data or logs
(base) root@71549e98dd1a:/matter# cd silabs_examples/unify-matter-bridge/linux/
(base) root@71549e98dd1a:/matter/silabs_examples/unify-matter-bridge/linux# gn gen out/arm64 --args='target_cpu="arm64"'
Done. Made 269 targets from 218 files in 737ms
(base) root@71549e98dd1a:/matter/silabs_examples/unify-matter-bridge/linux# ninja -C out/arm64
ninja: Entering directory `out/arm64'
[15/814] ACTION //:get_chip_version(//third_party/connectedhomeip/build/toolchain/linux:linux_arm64_gcc)
FAILED: gen/include/chip_version.hpp
python /matter/silabs_examples/unify-matter-bridge/scripts/gen_version_info.py gen/include/chip_version.hpp
Traceback (most recent call last):
File "/matter/silabs_examples/unify-matter-bridge/scripts/gen_version_info.py", line 53, in
generate_git_info(output_file)
File "/matter/silabs_examples/unify-matter-bridge/scripts/gen_version_info.py", line 19, in generate_git_info
version = subprocess.check_output(['git', 'describe', '--tags'], text=True, stderr=subprocess.DEVNULL).strip().split('-', 1)[1]
IndexError: list index out of range
[20/814] ACTION //third_party/connectedhomeip/src/lib/asn1:gen_a...ird_party/connectedhomeip/build/toolchain/linux:linux_arm64_gcc
ninja: build stopped: subcommand failed.

had to modify the source code to compile  it successfully.
unify.txt
"subprocess.check_output(['git', 'describe', '--tags'], text=True, stderr=subprocess.DEVNULL).strip()" is returning "latest".


Reads downloaded Excel files incorrectly unless opened, then saved

I am receiving an Excel file from another program. When I feed that file into XLXS it doesn't read the file correctly. If I open that file and save it without doing anything else, it works fine. The first issue was just converting the sheet to JSON. I saw the !ref object had the range wrong, so I  used this solution to fix that: https://github.com/SheetJS/sheetjs/issues/1557
However, it still reads the data incorrectly when I parse the results through JavaScript. If I open and save the file, it parses correctly. My app parses correctly on any opened and saved file.
I assume the act of saving the downloaded file does some type of update on the Excel file. The range issue didn't exist either on opened and saved files; only files downloaded and never opened.
Maybe there are settings I need to pass through to sheet_to_json() that I'm unaware of? Any suggestions would be appreciated. Thank you.

Can you share the original file that is not being parsed correctly?

Unfortunately I can't because of sensitive data and redacting that would cause me to save the file which would eliminate the issue.

Without seeing the file it is difficult to say.  Can you pass the option WTF: true to the read function and see if there is a parse error?
You can email directly to<EMAIL_ADDRESS>if that is acceptable.

I tracked down the problem. The file download saved empty strings as a single space. Opening it and saving it in Excel must trim spaces. So when my code was checking if a value existed, the downloaded file's single space returned true. I added a loop to trim all values on each object in the JSON array and it solved the problem. Thanks.


Bind scheduled twice

When smppClient.bind() throws an exception, the SessionHandler still gets called.

Can you provide more detail? I believe fireUnknownThrowable(t) should get called when the bind() fails.


Keep and flatten wikilinks in markdown pod export

Please select if your request is either something new or an enhancement

[x] Enhancement of an existing Feature.
[ ] Request of a new feature.

Please select the area your request applies to. (Multiple selections are Possible. You can leave blank if you're not sure.)

[ ] Workspace - VSCode workspace, vaults, Intellisense/autocomplete, Dendron settings
[ ] Lookup - Dendron's Lookup Command
[ ] Views - Dendron Preview, Tree View, Side Panels in the UI
[ ] Schema - Dendron Schemas
[x] Pod - Data import from / export to Dendron
[ ] Publish - External Site Publish
[ ] Markdown - Markdown features, such as syntax support and features

Is your feature request related to a problem? Please describe
Markdown export does not preserve wikilinks, which is central to a distributed knowledge graph like Agora.
Describe the solution you'd like

Add an option to keep wikilinks and flatten them by removing the hierarchy prefix, e.g. [[aws.load-balancer]] -> [[load-balancer]].
(Optional) Add an option to replace hyphens with spaces in wikilinks.

Describe alternatives you've considered
Make Agora Bridge compatible with Dendron vaults directly.
Additional context
https://anagora.org/node/agora-protocol
https://anagora.org/node/wikilink

Thank you for the suggestion. We'll keep Agora in mind when we work on pod improvements.

pinging @jonathanyeung @Harshita-mindfire for fyi: pod improvments.


provide truncate_here() versions with 64 bit offset for watcom builds.

c.f. https://github.com/dbry/WavPack/issues/137

Cool.


add FunctionMessage support to _convert_dict_to_message() in OpenAI chat model

Already supported in the reverse operation in _convert_message_to_dict(), this just provides parity.
@hwchase17
@agola11

wont we want to include additional_kwargs?

@hwchase17  none of the other elements of that function add additional_kwargs besides the function_call in the AIMessage conversion. It's not clear to me what we would even add to additional_kwargs in the FunctionMessage case.
Here's the example code from OpenAI, looks like passing a function message is just the role, name, and content to me:
{
  "model": "gpt-3.5-turbo-0613",
  "messages": [
    {"role": "user", "content": "What is the weather like in Boston?"},
    {"role": "assistant", "content": null, "function_call": {"name": "get_current_weather", "arguments": "{ \"location\": \"Boston, MA\"}"}},
    {"role": "function", "name": "get_current_weather", "content": "{\"temperature\": "22", \"unit\": \"celsius\", \"description\": \"Sunny\"}"}
  ],
  "functions": [
    {
      "name": "get_current_weather",
      "description": "Get the current weather in a given location",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "The city and state, e.g. San Francisco, CA"
          },
          "unit": {
            "type": "string",
            "enum": ["celsius", "fahrenheit"]
          }
        },
        "required": ["location"]
      }
    }
  ]
}

If you could confirm that the existing code is correct, I'll try to work up a unit test, first time contributor, so I'll need to fumble my way through it ;)

Can we add unit test?

@hwchase17 well there wasn't even a unit test file for chat_models/test_openai.py ;)
I think I got a correct test written and it's passing.
Let me know if you need anything else to get this PR in.

wont we want to include additional_kwargs?

@hwchase17 none of the other elements of that function add additional_kwargs besides the function_call in the AIMessage conversion. It's not clear to me what we would even add to additional_kwargs in the FunctionMessage case.
Here's the example code from OpenAI, looks like passing a function message is just the role, name, and content to me:
{
  "model": "gpt-3.5-turbo-0613",
  "messages": [
    {"role": "user", "content": "What is the weather like in Boston?"},
    {"role": "assistant", "content": null, "function_call": {"name": "get_current_weather", "arguments": "{ \"location\": \"Boston, MA\"}"}},
    {"role": "function", "name": "get_current_weather", "content": "{\"temperature\": "22", \"unit\": \"celsius\", \"description\": \"Sunny\"}"}
  ],
  "functions": [
    {
      "name": "get_current_weather",
      "description": "Get the current weather in a given location",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "The city and state, e.g. San Francisco, CA"
          },
          "unit": {
            "type": "string",
            "enum": ["celsius", "fahrenheit"]
          }
        },
        "required": ["location"]
      }
    }
  ]
}

If you could confirm that the existing code is correct, I'll try to work up a unit test, first time contributor, so I'll need to fumble my way through it ;)

ah right sorry, got confused
thanks!


od help page doesn't have usage example

https://uutils.github.io/coreutils-docs/user/utils/od.html
it should have the same as numfmt [OPTIONS] in https://uutils.github.io/coreutils-docs/user/utils/numfmt.html

Hi @sylvestre,
Can you confirm if od [OPTION]... [--] [FILENAME]... is needed or only numfmt [OPTIONS] is needed to be printed as the first line in USAGE string of od is od [OPTION]... [--] [FILENAME]...?
Currently usage is not printed because USAGE string starts with a newline and uudoc only considers 1st line for USAGE section in docs

od [OPTION]... [--] [FILENAME]... would be best I think. You could also take a look at the doc generation to support multiline usage strings, but that might be quite complex.

I think adding multi-line support to doc generation can be taken up separately.In the linked PR I have removed the newline from starting of string which is causing empty line in doc.
Please let me know if I need to make any changes to the attached PR?


Handle worksheets of worksheets in StructScan

And we might as well handle slices too.
The reason this was not implemented initially is that we need to handle graphs properly, e.g. a -> b -> a. Need to change the simple implementation to something like
type structScanner struct {
  graph map[string]interface{}
}

func (ws *Worksheet) StructScan(dest interface{}) error {
  scanner := structScanner{
    graph: map[string]interface{} {
      ws.Id(): dest,
    },
  }
  if err := scanner.structScan(ws); err != nil {
    return err
  }
}

where you use graph to store structs you've already struct scanned, and only need to link up when recursively scanning.

part 1 is implemented in https://github.com/helloeave/worksheets/pull/113
part 2 will be supporting cycle termination
part 3 is slices

part 2 is https://github.com/helloeave/worksheets/pull/115
and part 3 is at https://github.com/helloeave/worksheets/pull/114


Correct link to distance.tsx

(Minor documentation change.)

Awesome thanks for fixing that!

Awesome thanks for fixing that!


Datepicker only shows one month on Mobile and if you scroll down multiple times it will show next month

Description
Datepicker only shows one month on Mobile and if you scroll down multiple times it will show next month. Nxt and previous month button < and > are not shown.
Steps to Reproduce
Open datepicker on mobile device or mobile layout
Expected behavior: User can select any month and select any next month
Actual behavior: Only current and next month can be chosen
Datepicker Version
[ The version of the datepicker you have installed in your project ]

Why did you closed this?


Find suitable platform (Terrascope?) to run System V1 public demo

Terrascope? Data science hub?

After discussion with devops, the current solution to be pursued is using Terrascope notebooks that will run a custom WorldCereal image.

closing, it's running on terrascope jupyter notebooks.