[ https://issues.apache.org/jira/browse/EAGLE-888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15861748#comment-15861748 ]
ASF GitHub Bot commented on EAGLE-888: -------------------------------------- Github user DadanielZ commented on the issue: https://github.com/apache/eagle/pull/796 @wujinhu thanks 👍 , this issue is solved. But I come up with another one when tring to view the alerts from UI: After configuring the "application-debug.conf" properly with *"jdbc"* as the storage type, I started eagle from Intellij successfully and started alert-engine and hdfsAuditLogApp smoothly, then I created a hdfs policy. I saw alerts are generated and saved in my mysql database. But when I tried to view the alerts from UI, ERROR occurs: ~~~ ERROR [2017-02-10 01:19:40,433] org.apache.eagle.service.generic.GenericEntityServiceResource: unknown storage type: jdbc, support: [hbase] ! org.apache.eagle.storage.exception.IllegalDataStorageTypeException: unknown storage type: jdbc, support: [hbase] ~~~ During debugging I see `storageServiceProviders` only contains `hBaseStorage`, but no `jdbcStorage`. Could you tell me the reason or give me a hint on which module to look into? Thanks and regards, Da Here is the configuration file I used: ~~~ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # --------------------------------------------- # Eagle REST Web Service Configuration # --------------------------------------------- service { env = "testing" host = "localhost" port = 9090 username = "admin" password = "secret" readTimeOutSeconds = 60 context = "/rest" timezone = "UTC" } zookeeper { zkQuorum = "localhost:2181" zkSessionTimeoutMs : 15000 zkRetryTimes : 3 zkRetryInterval : 20000 } # --------------------------------------------- # Eagle Deep Storage Configuration # --------------------------------------------- storage { type = "jdbc" jdbc { adapter = "mysql" username = "root" password = root database = eagle connectionUrl = "jdbc:mysql://localhost:3306/eagle" connectionProps = "encoding=UTF-8" driverClass = "com.mysql.jdbc.Driver" connectionMax = 8 } } # --------------------------------------------- # Eagle Metadata Store Configuration # --------------------------------------------- metadata { store = "org.apache.eagle.metadata.store.jdbc.JDBCMetadataStore" jdbc { username = root password = root driverClassName = com.mysql.jdbc.Driver database = "eagle" connection = "jdbc:mysql://localhost:3306/eagle?user=root" } } # --------------------------------------------- # Eagle Application Configuration # --------------------------------------------- application { stream { provider = org.apache.eagle.app.messaging.KafkaStreamProvider } storm { nimbusHost = "localhost" nimbusThriftPort = 6627 } updateStatus: { initialDelay: 10 period: 10 } healthCheck { initialDelay = 30 period = 60 publisher { publisherImpl = org.apache.eagle.app.service.impl.ApplicationHealthCheckEmailPublisher dailySendHour = 11 mail.smtp.host = "mail.host.com" mail.smtp.port = 25 mail.smtp.recipients = "some...@email.com" mail.smtp.subject = "Eagle Application Health Check" mail.smtp.template = "HealthCheckTemplate.vm" } } mailService { mailSmtpServer = "", mailSmtpPort = 25, mailSmtpAuth = "false" //mailSmtpConn = "plaintext", //mailSmtpUsername = "" //mailSmtpPassword = "" //mailSmtpDebug = false } dailyJobReport { reportHourTime: 1 reportPeriodInHour: 12 numTopUsers : 10 jobOvertimeLimitInHour: 6 subject: "Job Report For 12 hours" recipients: "nob...@abc.com" template: "JobReportTemplate.vm" } } # --------------------------------------------- # Eagle Alert Engine Configuration # --------------------------------------------- # Coordinator Configuration coordinator { policiesPerBolt = 5 boltParallelism = 5 policyDefaultParallelism = 5 boltLoadUpbound = 0.8 topologyLoadUpbound = 0.8 numOfAlertBoltsPerTopology = 5 zkConfig { zkQuorum = "localhost:2181" zkRoot = "/alert" zkSessionTimeoutMs = 10000 connectionTimeoutMs = 10000 zkRetryTimes = 3 zkRetryInterval = 3000 } metadataService { host = "localhost", port = 9090, context = "/rest" } metadataDynamicCheck { initDelayMillis = 1000 delayMillis = 30000 stateClearPeriodMin = 1440 stateReservedCapacity = 100 } } ~~~ > Application submitted to Storm is always shown as “HBaseAuditLogApp” > --------------------------------------------------------------------- > > Key: EAGLE-888 > URL: https://issues.apache.org/jira/browse/EAGLE-888 > Project: Eagle > Issue Type: Bug > Components: Core::App Engine > Affects Versions: v0.5.0 > Reporter: DanielZhou > Assignee: DanielZhou > > *Issue*: > Steps to reproduce: > - Started application from Eagle UI (eg: alert engine) > - Go to Storm UI, topology name is shown as *"HBaseAuditLogApp"* > *Reason*: > In the constructor function of class *"ApplicationAction"*: > {quote} > this.effectiveConfig = ConfigFactory.parseMap(executionConfig) > .withFallback(serverConfig) > > .withFallback(ConfigFactory.parseMap(metadata.getContext())) > {quote} > According to the java doc of > [withFallBack(theOther)|http://typesafehub.github.io/config/latest/api/com/typesafe/config/Config.html#withFallback-com.typesafe.config.ConfigMergeable-] > : > {quote} > Returns a new value computed by merging this value with another, with keys in > this value "winning" over the other one. > {quote} > As a result, "serverConfig" will win over > "ConfigFactory.parseMap(metadata.getContext())" which means the default > "ConfigString(appId="HBaseAuditApp")" and "ConfigString(siteId="testSite")" > will win over the meta data of the user's topology. > *Fix*: > Change the order of "withFallBack" to: > {quote} > this.effectiveConfig = ConfigFactory.parseMap(executionConfig) > > .withFallback(ConfigFactory.parseMap(metadata.getContext())) > .withFallback(serverConfig) > {quote} -- This message was sent by Atlassian JIRA (v6.3.15#6346)