Edit in JSFiddle

var default_dagreD3e_style = "fill: rgba(255,255,255, 0); stroke: #d5d5d5; stroke-width: 1.5px;";
var default_dagreD3arrowhead_style = "fill: #c5c5c5; stroke: #c5c5c5; stroke-width:4px;";

var outbound_edge_style = "fill: rgba(255,255,255, 0); stroke: #800080; stroke-width: 1.5px;";
var outbound_arrowhead_style = "fill: #800080; stroke: #800080; stroke-width:4px;";

var inbound_edge_style = "fill: rgba(255,255,255, 0); stroke: #32CD32; stroke-width: 1.5px;";
var inbound_arrowhead_style = "fill: #32CD32; stroke: #32CD32; stroke-width:4px;";


var diagramData = [{
    "start": "MockServlet",
        "end": "Node_03",
        "edge_s": 5,
        "edge_f": 1,
        "node_f": 0
}, {
    "start": "Apache",
        "end": "MockServlet",
        "edge_s": 4,
        "edge_f": 2,
        "node_f": 1
}, {
    "start": "Node_01",
        "end": "Apache",
        "edge_s": 5,
        "edge_f": 0,
        "node_f": 0
}, {
    "start": "Apache",
        "end": "Node_03",
        "edge_s": 3,
        "edge_f": 1,
        "node_f": 2
}]
dagreD3_graph(diagramData, "#dagre-d3", 'group', null);


function create_graph_obj() {
    var g = new dagreD3.graphlib.Graph({
        directed: true,
        multigraph: false,
        compound: true
    });
    g.setGraph({
        rankdir: "LR", // Graph 방향
        ranksep: 100,
        nodesep: 30,
        marginx: 40,
        marginy: 40,
    });
    return g;
};

/// Dagre D3 Graph ///
function dagreD3_graph(data, disply_place, mode, open_G) {
    $(disply_place + " > g > *").remove();
    var svg = d3.select(disply_place),
        inner = svg.select("g");
    var render = new dagreD3.render();
    var g = create_graph_obj();

    make_closed_group_node(data, g);
    dagreD3_style_node_edge(g);

    // Set up zoom support
    var zoom = d3.behavior.zoom().on("zoom", function () {
        inner.attr("transform", "translate(" + d3.event.translate + ")" + "scale(" + d3.event.scale + ")");
    });
    svg.call(zoom);
    render(inner, g);
    dagreD3_zoom_translate(zoom, g, svg);

    window.onresize = function (event) {
        dagreD3_zoom_translate(zoom, g, svg);
    };

    //node click event (highlight)
    svg.selectAll("g.node").on("click", function (id) {
        var highLight = node_click_action(g, id);
        render(inner, g);
    });
};

//--------------------------------------------------------------------//
function make_closed_group_node(data, g) {
    data.forEach(function (item, index) {
        var start = item.start;
        var end = item.end;
        var edge_s = item.edge_s;
        var edge_f = item.edge_f;
        var node_f = item.node_f;

        var eclass = (node_f == 1) ? ' dagreD3FailNode' : '';

        if (start.toLowerCase() != 'none') {
            if (!g.node(start)) {
                g.setNode(start, {
                    labelType: 'html',
                    label: label_html(start, node_f, g),
                    class: 'dagreD3Node'
                });
            } else {
                g.node(start).label = label_html(start, node_f, g);
            }
        }
        if (end.toLowerCase() != 'none') {
            if (!g.node(end)) {
                g.setNode(end, {
                    labelType: 'html',
                    label: label_html(end, node_f, g),
                    class: 'dagreD3Node'
                });
            } else {
                g.node(end).label = label_html(end, node_f, g);
            }
        }
        if (start.toLowerCase() != 'none' && end.toLowerCase() != 'none') {
            g.setEdge(start, end, {
                labelType: 'html',
                label: edge_label_cnt(start, end, edge_s, edge_f),
                arrowhead: "vee",
                lineInterpolate: 'monotone'
            });
        }
    })
};

//-------------------------------------------------------------------//
/*
 * Set dagreD3 Edge Label
 */
function edge_label_cnt(start, end, edge_s, edge_f) {
    var dagreD3EdgeLabelHtml = '<div class="dagreD3EdgeLabel">' + edge_s + ' / <span style="color: #ff0033;">' + edge_f + '</span></div>';
    return dagreD3EdgeLabelHtml;
}

/*
 * Set dagreD3 Node Label
 */
function label_html(label, sunit, g) {
    var newLabel = label;

    if (g.node(label)) {
        var sunit_label = g.node(label).label.match(/Fail : [+-]?\d+/);
        var new_sunit = sunit_label ? ((sunit != 0) ? (sunit_label[0].match(/\d+/) * 1 + sunit) : (sunit_label[0].match(/\d+/) * 1)) : ((sunit != 0) ? sunit : "");
        var l_html = (new_sunit != "") ? ('<p class="dagreD3NodeLabel">' + newLabel + '</p><tr><td><span class="nodeFailCnt">Fail : ' + new_sunit + '</td></tr>') : ('<p class="dagreD3NodeLabel">' + newLabel + '</p>');
        return l_html;
    }

    var l_html = (sunit != 0) ? ('<p class="dagreD3NodeLabel">' + newLabel + '</p><tr><td><span class="nodeFailCnt">Fail : ' + sunit + '</td></tr>') : ('<p class="dagreD3NodeLabel">' + newLabel + '</p>');
    return l_html;
}

function dagreD3_style_node_edge(g) {
    // Set custom edge labelpos
    g.edges().forEach(function (v) {
        var edge = g.edge(v);
        //				edge.labelpos = 'c';
        edge.style = default_dagreD3e_style;
        edge.arrowhead = "vee";
        edge.arrowheadStyle = default_dagreD3arrowhead_style;
    });

    g.nodes().forEach(function (v) {
        var node = g.node(v);
        node.rx = node.ry = 5;
    });
};

/*
 * Node Click Highlight Action 
 */
function node_click_action(g, id) {
    var highLight;
    var nodeClass = g.node(id).class;

    if (nodeClass.indexOf('highLight') != -1) {
        g.node(id).class = nodeClass.toString().replace('highLight', ' ').trim();

        g.edges().forEach(function (e, v, w) {
            var edge = g.edge(e);
            edge.style = default_dagreD3e_style;
            edge.arrowhead = "vee";
            edge.arrowheadStyle = default_dagreD3arrowhead_style;
        });
        highLight = 'off';
    } else {
        g.nodes().forEach(function (v) {
            var node = g.node(v);
            nodeClass = node.class;
            if (nodeClass) node.class = nodeClass.replace('highLight', ' ').trim();
        });
        g.edges().forEach(function (e, v, w) {
            var edge = g.edge(e);
            edge.style = default_dagreD3e_style;
            edge.arrowhead = "vee";
            edge.arrowheadStyle = default_dagreD3arrowhead_style;
            if (e.v == id) {
                edge.style = outbound_edge_style;
                edge.arrowhead = "vee";
                edge.arrowheadStyle = outbound_arrowhead_style;
            } else if (e.w == id) {
                edge.style = inbound_edge_style;
                edge.arrowhead = "vee";
                edge.arrowheadStyle = inbound_arrowhead_style;
            }
        });
        g.node(id).class += ' highLight';
        highLight = 'on'
    }
    console.debug('click node : ' + id);

    return highLight;
};

function dagreD3_zoom_translate(zoom, g, svg) {
    var zoomScale = zoom.scale();
    var graphWidth = g.graph().width + 80;
    var graphHeight = g.graph().height + 40;
    var width = parseInt(svg.style("width").replace(/px/, ""));
    var height = parseInt(svg.style("height").replace(/px/, ""));

    zoomScale = Math.min(width / graphWidth, height / graphHeight);
    if (zoomScale > 1.4) zoomScale -= 0.1;
    var translate = [(width / 2) - ((graphWidth * zoomScale) / 2), (height / 2) - ((graphHeight * zoomScale) / 2)];
    zoom.translate(translate);
    zoom.scale(zoomScale);
    zoom.event(d3.select("svg"));
};
<svg id="dagre-d3" style="margin-top: 25px; border: 1px solid #ddd; width:100%; height:300px; background-color: #fff;"><g><g/></svg>
/* dagreD3 Example Style sheet */
div{
    text-align: center;
}
g.node {
    cursor: pointer;
}
 .dagreD3Node {
    fill: #eee;
    stroke: #bbb;
    stroke-width:1px;
}
.dagreD3NodeLabel {
    font-size: 20pt;
    color:#555;
    min-width: 80px;
    min-height: 60px;
    line-height: 60px;
    margin:0;
}
.dagreD3EdgeLabel {
    color:#666;
    font-size:10pt;
}
.highLight > rect, .highLight > circle {
    stroke: blue;
    stroke-width:2px;
}
.nodeFailCnt {
    color:#ff0033;
    font-size: 10pt;
}