CCR_IGNORE won't work, and a quick grep in the code base makes me think CCR_IGNORE won't even work as it did previously (drop hosts from the CRConfig). That said, it's a good idea and I think we might be able to use the same concept to accomplish this, as long as we make Traffic Ops, or Traffic Monitor and Traffic Router aware of the new status. Something like MONITOR_ONLY might make sense. If we did this in Traffic Ops, we could use the new status to control whether DS assignments occur in the Traffic Ops APIs (legacy CRConfig and monitoring/routing config APIs). Making the change in Traffic Ops is likely to be less work and will be less disruptive to production traffic (no deployment of TR required).
The specific reason why this is tricky is that we want to poll astats to collect metrics off these caches using Traffic Monitor, assign delivery services to them, but not route traffic to them. That implies that the caches must be in the CRConfig in order for Traffic Monitor to see them, but due to the DS assignments, Traffic Router will route traffic to them. The caches in question already have a unique type, "EDGE_FOO" for example, while our regular edges are simply "EDGE." A while back, I worked on a change to allow us to monitor any server type that begins with EDGE or MID, which gets them into the CRConfig. This worked fine until we had a need to map DSs to the edge type in question. With the golang version of Traffic Monitor we moved toward monitoring.json, but we still rely on CRConfig. Long term we should complete that move, and update Traffic Router to consume the routing config so that the two configs of the components aren't so tightly coupled. That would allow us to accomplish this sort of thing much more easily and clearly. -- Thanks, Jeff On Wed, Aug 23, 2017 at 3:53 PM, rawlin.pet...@gmail.com <rawlin_pet...@comcast.com> wrote: > What about the server status CCR_IGNORE ("Server is ignored by traffic > router.") that already exists? It doesn't appear to be checked when > generating CRConfig right now, but maybe it should be? > > --Rawlin > > On 2017-08-22 11:45, "Gelinas, Derek" <derek_geli...@comcast.com> wrote: >> I’d agree with you if this was designed to drain, but this is intended as a >> permanent state for a pretty good long list of caches. >> >> DG >> >> > On Aug 22, 2017, at 1:28 PM, Eric Friedrich (efriedri) >> > <efrie...@cisco.com> wrote: >> > >> > What about a modification of option 1- adding a new state per server. >> > >> > Instead of ADMIN_DOWN, it could be “REPORTED_DRAIN” to indicate the >> > difference >> > >> > —Eric >> > >> >> On Aug 22, 2017, at 1:14 PM, Gelinas, Derek <derek_geli...@comcast.com> >> >> wrote: >> >> >> >> That’s actually the workaround we’re using at the moment - setting them >> >> to admin_down. That’s a temporary measure, though - we want something >> >> more permanent. >> >> >> >> DG >> >>> On Aug 22, 2017, at 1:09 PM, Eric Friedrich (efriedri) >> >>> <efrie...@cisco.com> wrote: >> >>> >> >>> How does your use case differ from marking a server as offline in >> >>> Traffic Ops and snapshotting? >> >>> >> >>> Thats the easiest way I can think of to get a server in this state >> >>> >> >>> —Eric >> >>> >> >>>> On Aug 22, 2017, at 1:00 PM, Gelinas, Derek <derek_geli...@comcast.com> >> >>>> wrote: >> >>>> >> >>>> We’ve run across a situation in which we need certain caches to >> >>>> simultaneously have map rules for a delivery service, but not actually >> >>>> have those caches routed to when requests are made via traffic router. >> >>>> Essentially, this means removing the delivery service from the cache’s >> >>>> info in the crconfig file. >> >>>> >> >>>> There’s been a bit of internal debate about the best ways to do this, >> >>>> and I’d like to collect some opinions on the matter. >> >>>> >> >>>> 1) Server table flag - when marked, nothing is routed to the host at >> >>>> all. Not as configurable as option 3, but more so than option 2. >> >>>> Faster than option 2 as it would be returned with existing search >> >>>> results and could be easily filtered on. Minor UI change only. >> >>>> 2) Profile parameter - when marked, nothing is routed to any host with >> >>>> this profile. Heavy handed, and would require additional profile >> >>>> parameter lookups when generating the crconfig, so it’d slow it down. >> >>>> No UI change. >> >>>> 3) deliveryservice_servers table flag - an additional column that is >> >>>> true by default. When desired, the user could pull up a sub-window >> >>>> within the delivery service configuration that would present a list of >> >>>> the hosts which have been assigned to the delivery service (and are not >> >>>> of org type). The user could deselect the desired hosts, setting the >> >>>> DSS routing value to false. This server would then be ignored when >> >>>> generating the crconfig data for that specific delivery service. This >> >>>> would be the most configurable option, and should be as quick as option >> >>>> 1, but would require the most extensive code changes. >> >>>> >> >>>> Personally, I like option 3, but would very much like to hear opinions, >> >>>> arguments, and other options that I haven’t thought of or listed here. >> >>>> >> >>>> Derek >> >>> >> >> >> > >> >>