小编din*_*ina的帖子

在Logstash中解析嵌套的JSON字符串

我正在以json格式登录logstash,我的日志有以下字段,每个字段都是一个字符串,atts字段是字符串化的json(注意:atts每次子字段都不同)

这是一个例子:

{"name":"bob","last":"builder", "atts":"{\"a\":111, \"b\":222}"}

我想解析它是这样的:

   {
     "name" => "bob",
     "last" => "builder"
     "atss" => {
          "a" => 111,
          "b" => 222}
   }
Run Code Online (Sandbox Code Playgroud)

这是我的配置:

input { stdin { } }  

filter {
  json {
    source => "message"
    target => "parsed"
  }
}
 output { stdout { codec => rubydebug  }}
Run Code Online (Sandbox Code Playgroud)

好的,现在我明白了:

{
    "@timestamp" => 2017-04-05T12:19:04.090Z,
    "parsed" => {
        "atss" => "{\"a\":111, \"b\":222}",
        "name" => "bob",
        "last" => "the builder"
    },
        "@version" => "1",
          "host" => "0.0.0.0" …
Run Code Online (Sandbox Code Playgroud)

logstash

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

HTTPOISON - 在elixir中插入body参数

我正在尝试做一个http请求

def getPage() do
    url = "http://myurl"
    body = '{
              "call": "MyCall",
              "app_key": "3347249693",
              "param": [
                  {
                      "page"          : 1,
                      "registres"     : 100,
                      "filter"        : "N"
                  }
              ]
             }'

    headers = [{"Content-type", "application/json"}]
    HTTPoison.post(url, body, headers, [])
end
Run Code Online (Sandbox Code Playgroud)

这对我很有用.

我的问题是 - 如何在body请求中插入变量.含义:

 def getPage(key, page, registers, filter) do
    url = "http://myurl"
    body = '{
              "call": "MyCall",
              "app_key": key,
              "param": [
                  {
                      "page"          : page,
                      "registres"     : registers,
                      "filter"        : filter
                  }
              ]
             }'

    headers = [{"Content-type", "application/json"}]
    HTTPoison.post(url, body, headers, …
Run Code Online (Sandbox Code Playgroud)

http elixir

9
推荐指数
2
解决办法
5756
查看次数

如何使用nodejs创建一个带缓冲区的读取流

我有这个json:

var myJSON = '{"kind": "person", "fullName": "Rivka3"}';
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用createReadStream将它上传到bigquery.当我保存它localy我成功:

fs.writeFile("/tmp/bq_json_file_new.json", myJSON, function(err){});
fs.createReadStream("/tmp/bq_json_file_new.json")
  .pipe(table.createWriteStream(metadata))
  .on('complete', function(job) {
    job
      .on('error', console.log)
      .on('complete', function(metadata) {
        console.log('job completed', metadata);
      });
  });
Run Code Online (Sandbox Code Playgroud)

现在我试图这样做而不保存它localy - 使用缓冲区:

fs.createReadStream(new Buffer(myJSON, "utf8"))
  .pipe(table.createWriteStream(metadata))
  .on('complete', function(job) {
    job
      .on('error', console.log)
      .on('complete', function(metadata) {
        console.log('job completed', metadata);
      });
  });
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

fs.js:575
  binding.open(pathModule._makeLong(path),

TypeError: path must be a string
Run Code Online (Sandbox Code Playgroud)

fs node.js google-bigquery

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

如何通过kubernetes pod传递docker run flags

嗨,我正在运行kubernetes集群,我运行mailhog容器.

但我需要使用自己的docker run参数运行它.如果我直接在docker中运行它.我会用命令:

docker run  mailhog/mailhog -auth-file=./auth.file
Run Code Online (Sandbox Code Playgroud)

但我需要通过Kubernetes pod运行它.我的pod看起来像:

   apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: mailhog
    spec:
      replicas: 1
      revisionHistoryLimit: 1
      strategy:
          type: RollingUpdate
      template:
        metadata:
          labels:
            app: mailhog
        spec:
          containers:
          - name: mailhog
            image: us.gcr.io/com/mailhog:1.0.0
            ports:
            - containerPort: 8025
Run Code Online (Sandbox Code Playgroud)

如何通过kubernetes实现使用参数-auth-file =./ auth.file运行Docker容器.谢谢.

我尝试添加下 containers

        command: ["-auth-file", "/data/mailhog/auth.file"]
Run Code Online (Sandbox Code Playgroud)

但后来我明白了

 Failed to start container with docker id 7565654 with error: Error response from daemon: Container command '-auth-file' not found or does not exist.
Run Code Online (Sandbox Code Playgroud)

docker kubernetes

7
推荐指数
3
解决办法
9177
查看次数

从http响应中获取标头

我是elm的新手,我有一个登录api,它在hedears中返回一个JWT令牌

curl  http://localhost:4000/api/login?email=bob@example&password=1234
Run Code Online (Sandbox Code Playgroud)

响应:

HTTP/1.1 200 OK
authorization: Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXyLp0aSI6ImefP2GOWEFYWM47ig2W6nrhw
x-expires: 1499255103
content-type: text/plain; charset=utf-8

success
Run Code Online (Sandbox Code Playgroud)

现在我试图编写一个函数,它将发送请求并从elm中的标头返回令牌

authUser =
    Http.send "http://localhost:4000/api/login?email=bob@example&password=1234"
Run Code Online (Sandbox Code Playgroud)

我该如何以简单的方式做到这一点?

elm

7
推荐指数
2
解决办法
1384
查看次数

如何在bigquery查询上设置命名参数

我试图在我的查询中使用命名参数bigquery.

@val '123';
SELECT *
FROM [project_id:my_dataset.my_table] 
where name=@val
Run Code Online (Sandbox Code Playgroud)

我明白了

Encountered " <MAX_TOKEN_VAL> "R "" at line 1, column 2. Was expecting: <EOF>

有没有办法在biquery上设置命名参数?

sql google-bigquery

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

无法查询 kubernetes(未经授权):端点被禁止:用户无法在命名空间中列出端点

kubernetes 1.9.4在我的gke集群上运行

我有两个 Podgate正在尝试连接coolapp,两者都用elixir

我正在使用libcluster连接我的节点我收到以下错误:

[libcluster:app_name] cannot query kubernetes (unauthorized): endpoints is forbidden: User "system:serviceaccount:staging:default" cannot list endpoints in the namespace "staging": Unknown user "system:serviceaccount:staging:default"

这是我在配置config/prod

 config :libcluster,
 topologies: [
   app_name: [
     strategy: Cluster.Strategy.Kubernetes,
     config: [
       kubernetes_selector: "tier=backend",
       kubernetes_node_basename: System.get_env("MY_POD_NAMESPACE") || "${MY_POD_NAMESPACE}"]]]
Run Code Online (Sandbox Code Playgroud)

这是我的配置:

虚拟机参数

## Name of the node
-name ${MY_POD_NAMESPACE}@${MY_POD_IP}
## Cookie for distributed erlang
-setcookie ${ERLANG_COOKIE}
# Enable SMP automatically based on availability …
Run Code Online (Sandbox Code Playgroud)

erlang elixir kubernetes google-kubernetes-engine

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

AppEngine“任务大小太大”

我正在 appengine 上运行一个应用程序并创建任务。

\n\n
    Queue queue = QueueFactory.getDefaultQueue();\n    queue.add(TaskOptions.Builder.withUrl("/worker").param("data", payload));\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我的有效负载非常大 (717.3 kb) 时,我收到此错误:\n"Task size too large\xe2\x80\x9d

\n\n

appengine 上的任务大小限制是多少?在文档中没有找到这个。

\n

java google-app-engine

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

子目录上 Cloud Storage 的 Cloud Pub/Sub 通知

我想听子桶中 GCS 的变化

我试过这个

gsutil notification create -t  my-topic -f json gs://my-bucket
Run Code Online (Sandbox Code Playgroud)

但它会通知我所有对象的变化

有没有办法只从子目录中获取,如下所示:

gsutil notification create -t  my-topic -f json gs://my-bucket/sub-dir
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage google-cloud-pubsub

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

如何阻止“kubectl exec”选项以及与集群上特定容器的任何其他外部连接

我有一个托管在 GKE 上的集群,我在此集群上有多个部署,
我可以连接kubectl exec到 Pod:

kubectl exec -it mypod-1234566-7890976 -- bash

我想删除连接到kubectl exec某个容器的选项

有没有办法通过阻止容器上的 ssh 来阻止连接到容器的选项DOCKERFILE?或任何其他方式

kubernetes google-kubernetes-engine

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