flink - 添加仪器

时间:2015-11-22 13:57:32

标签: java newrelic apache-flink

我想将 NewRelic 工具添加到我的flink作业中。我没有看到可以将其他类路径/其他参数传递给bin/flink run <job>命令的位置。

NewRelic java代理希望-javaagent:<path to jar>添加到执行路径中。也建议传入配置文件路径。

编辑:

我将此行添加到所有(3)群集计算机上的 conf / flink-conf.yaml 中:

env.java.opts: "-javaagent:/opt/newrelic/newrelic.jar -Dnewrelic.config.file=/opt/newrelic/newrelic.yml"

当我开始启动群集时,只会启动作业管理器任务管理器无法在任何计算机上启动。

我发现添加检测(到目前为止)的唯一方法是更改​​ bin / flink 末尾的命令行以包含上述参数。这很好,除了它需要运行命令的会话保持打开状态。如果退出,Flink作业将继续,但NewRelic代理退出。

2 个答案:

答案 0 :(得分:4)

您可以通过LET docId = "ExampleDocClass/1234567" // get data for all the edges LET es = GRAPH_EDGES('EdgeClass',docId,{direction:'any',maxDepth:1,includeData:true}) // create an array of all the neighbor nodes LET vArray = ( FOR v IN GRAPH_TRAVERSAL('EdgeClass',docId[0],'any',{ maxDepth:1}) FOR v1 IN v RETURN v1.vertex ) // using node array, return inbound and outbound for each node LET vs = ( FOR v IN vArray // inbound and outbound are separate queries because I couldn't figure out // how to get Arango to differentiate inbout and outbound in the query results LET oe = (FOR oe1 IN GRAPH_EDGES('EdgeClass',v,{direction:'outbound',maxDepth:1,includeData:true}) RETURN oe1._to) LET ie = (FOR ie1 IN GRAPH_EDGES('EdgeClass',v,{direction:'inbound',maxDepth:1,includeData:true}) RETURN ie1._from) RETURN {'vertexData': v, 'outEdges': oe, 'inEdges': ie} ) RETURN {'edges':es,'vertices':vs} 配置值传递其他JVM启动参数,您可以在Flink的配置文件 private class RdoHandler implements ActionListener { @Override public void actionPerformed(ActionEvent ae) { String temp = txt.getText(); int prev = 0; JRadioButton jb = (JRadioButton) ae.getSource(); if (jb == BIN) { btnA.setEnabled(false); btnB.setEnabled(false); btnC.setEnabled(false); btnD.setEnabled(false); btnE.setEnabled(false); btnF.setEnabled(false); btn0.setEnabled(!false); btn1.setEnabled(!false); btn2.setEnabled(false); btn3.setEnabled(false); btn4.setEnabled(false); btn5.setEnabled(false); btn6.setEnabled(false); btn7.setEnabled(false); btn8.setEnabled(false); btn9.setEnabled(false); temp = txt.getText(); if (prev == 3) { temp = Integer.toBinaryString(Integer.parseInt(txt.getText(), 8)); txt.setText(temp); } else if (prev == 2) { temp = Integer.toBinaryString(Integer.parseInt(txt.getText(), 16)); txt.setText(temp); } else if (prev == 4) { temp = Integer.toBinaryString(Integer.parseInt(txt.getText())); txt.setText(temp); } else { txt.setText(""); } prev = 1; } if (jb == HEX) { btnA.setEnabled(!false); btnB.setEnabled(!false); btnC.setEnabled(!false); btnD.setEnabled(!false); btnE.setEnabled(!false); btnF.setEnabled(!false); btn0.setEnabled(!false); btn1.setEnabled(!false); btn2.setEnabled(!false); btn3.setEnabled(!false); btn4.setEnabled(!false); btn5.setEnabled(!false); btn6.setEnabled(!false); btn7.setEnabled(!false); btn8.setEnabled(!false); btn9.setEnabled(!false); temp = txt.getText(); if (prev == 1) { temp = Integer.toHexString(Integer.parseInt(txt.getText(), 2)); txt.setText(temp); } else if (prev == 3) { temp = Integer.toHexString(Integer.parseInt(txt.getText(), 8)); txt.setText(temp); } else if (prev == 4) { temp = Integer.toHexString(Integer.parseInt(txt.getText())); txt.setText(temp); } prev = 2; } if (jb == OCT) { btnA.setEnabled(false); btnB.setEnabled(false); btnC.setEnabled(false); btnD.setEnabled(false); btnE.setEnabled(false); btnF.setEnabled(false); btn0.setEnabled(!false); btn1.setEnabled(!false); btn2.setEnabled(!false); btn3.setEnabled(!false); btn4.setEnabled(!false); btn5.setEnabled(!false); btn6.setEnabled(!false); btn7.setEnabled(!false); btn8.setEnabled(false); btn9.setEnabled(false); temp = txt.getText(); if (prev == 1) { temp = Integer.toOctalString(Integer.parseInt(txt.getText(), 2)); txt.setText(temp); } else if (prev == 2) { temp = Integer.toOctalString(Integer.parseInt(txt.getText(), 16)); txt.setText(temp); } else if (prev == 4) { temp = Integer.toOctalString(Integer.parseInt(txt.getText())); txt.setText(temp); } prev = 3; } if (jb == DEC) { btnA.setEnabled(false); btnB.setEnabled(false); btnC.setEnabled(false); btnD.setEnabled(false); btnE.setEnabled(false); btnF.setEnabled(false); btn0.setEnabled(!false); btn1.setEnabled(!false); btn2.setEnabled(!false); btn3.setEnabled(!false); btn4.setEnabled(!false); btn5.setEnabled(!false); btn6.setEnabled(!false); btn7.setEnabled(!false); btn8.setEnabled(!false); btn9.setEnabled(!false); temp = txt.getText(); if (prev == 1) { temp = Integer.toString(Integer.parseInt(txt.getText(), 2)); txt.setText(temp); } else if (prev == 3) { temp = Integer.toString(Integer.parseInt(txt.getText(), 8)); txt.setText(temp); } else if (prev == 2) { temp = Integer.toString(Integer.parseInt(txt.getText(), 16)); txt.setText(temp); } prev = 4; } } } 中设置该值。

答案 1 :(得分:0)

首先删除值(右侧)中的引号

env.java.opts: -javaagent:/opt/newrelic/newrelic.jar -Dnewrelic.config.file=/opt/newrelic/newrelic.yml

并确保将文件放入&#34; lib&#34; flink目录并将命令重写为

env.java.opts: -javaagent:lib/newrelic.jar -Dnewrelic.config.file=lib/newrelic.yml

&#34; lib&#34;中的所有文件目录将被复制到作业管理器和任务管理器,并在相对路径中提供&#34; ./ lib&#34;