小编Ben*_*Ben的帖子

使用 System.Text.Json 反序列化为不区分大小写的字典

我正在尝试将 json 反序列化为具有 type 属性的对象Dictionary<string,string>。我将字典的比较器指定为StringComparer.OrdinalIgnoreCase。这是这个类:

class  DictionaryTest
{
       public Dictionary<string, string> Fields { get; set; }
       public DictionaryTest()
       {
           Fields = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
       }
}
Run Code Online (Sandbox Code Playgroud)

但是当反序列化发生时,比较器将更改为通用比较器。因此,我无法以不区分大小写的方式访问字典的键。

var points = new Dictionary<string, string>
{
    { "James", "9001" },
    { "Jo", "3474" },
    { "Jess", "11926" }
};

var testObj = new DictionaryTest{Fields = points};           
var dictionaryJsonText =  JsonSerializer.Deserialize<DictionaryTest>(JsonSerializer.Serialize(testObj, options:new JsonSerializerOptions()
{
    IgnoreNullValues = true,
    WriteIndented = false,
    PropertyNamingPolicy = null,
    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
    DictionaryKeyPolicy = JsonNamingPolicy.CamelCase, …
Run Code Online (Sandbox Code Playgroud)

c# json-deserialization .net-5 system.text.json

10
推荐指数
1
解决办法
4387
查看次数

计算多个 Prometheus 指标的百分比并在 Grafana 中显示

我有以下指标:

total_number_of_visitorsgauge当访问者进入网站时该值会增加,当访问者离开网站时该值会减少

paid_visitorscounter当付费访问者进入网站并停留至少 5 分钟时,该值就会递增。

这些指标中的每一项都有两个常见标签device[移动、桌面、其他] 和browser[ Chrome、Safari、Firefox、Edge、其他]

我想使用 PromQL 计算付费访问者的百分比,并按这两个标签中的任何一个进行过滤,以显示在 Grafana 的图表中。我该怎么办?

grafana prometheus promql

5
推荐指数
1
解决办法
1万
查看次数

使用StackExchange.Redis从Redis进行原子读取和删除

是否有一种简单的方法可以原子方式读取值,然后使用StackExchange c#驱动程序从Redis中删除它?
我在Redis中缓冲项目,当它们达到某个阈值时我会检索它们,但我也想刷新我的缓冲区.我需要提一下,我将项目存储在列表中,并通过"刷新缓冲区",我的意思是我要删除列表.
"关键":[项目清单]

c# atomicity redis stackexchange.redis

4
推荐指数
1
解决办法
4160
查看次数

使用 Helm 访问 k8s configmap 中的配置文件时数据为空

我正在尝试在带有舵图的部署中使用配置映射。现在似乎可以根据此处的文档使用 Helm 访问文件: https: //github.com/helm/helm/blob/master/docs/chart_template_guide/accessing_files.md

这是我的部署:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: "{{ template "service.fullname" . }}"
  labels:        
    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
spec:
  replicas: {{ .Values.replicaCount }}
  template:
    metadata:
      labels:
        app: "{{ template "service.fullname" . }}"
    spec:
      containers:
      - name: "{{ .Chart.Name }}"
        image: "{{ .Values.registryHost }}/{{ .Values.userNamespace }}/{{ .Values.projectName }}/{{ .Values.serviceName }}:{{.Chart.Version}}"
        volumeMounts:
        - name: {{ .Values.configmapName}}configmap-volume
          mountPath: /app/config
        ports:
        - containerPort: 80
          name: http            
        livenessProbe:
          httpGet:
            path: /health
            port: http
          initialDelaySeconds: 10
          timeoutSeconds: 5
        readinessProbe:
          httpGet: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-helm configmap

1
推荐指数
1
解决办法
4903
查看次数