Hi Sun,

If you could provide us a few of the measurement IDs for the ones that worked via the UI, along with a few IDs from the API created ones, we would be happy to take a look and see if we can determine the cause. You can include them here on the mailing list or send them to my email directly.

Kind Regards,

Stephen
Atlas UI

On Dec 19, 2024, at 4:22 AM, 孙乐童 <slt20@mails.tsinghua.edu.cn> wrote:

Dear all,

I have been attempting to use Atlas to launch traceroute measurements recently. Initially, I used ripe.atlas.cousteau to run the measurements in batches, keeping the total number under 10,000 to avoid exceeding the measurement limit. However, only 10% of the measurements returned successful results, while the other 90% showed the status "scheduling denied."

Next, I tried launching only 12 measurements in batch, where each measurement contained one traceroute from a specific probe to a designated IPv4 destination. Out of these, 4 succeeded and the other 8 showed the status "specified". Following that, I launched the 12 measurements one by one with 2-second intervals, resulting in a success rate of 6 out of 12. However, when I increased the interval to 3 seconds, the success rate dropped to 4 out of 12.

Interestingly, when I created the same measurements for the designated probes and destinations through the web interface, all of them were successful.

Below is the Python code I used to launch the measurements:

from ripe.atlas.cousteau import (
  Traceroute,
  AtlasSource,
  AtlasRequest,
  AtlasCreateRequest,
  AtlasResultsRequest,
  AtlasLatestRequest,
  ProbeRequest  
)

    traceroute = Traceroute(af=4, target=dstip, description="traceroute subpref ip {} from {} {}".format(dstip, probe_type, probe_value), protocol='ICMP')
    if probe_type == 'asn': probe_value = int(probe_value)
    source = AtlasSource(type=probe_type, value=probe_value, requested=1, tags={"include": ["system-ipv4-capable"]})
   
    _key = ATLAS_API_KEY_2
    for _ in range(2):
        atlas_request = AtlasCreateRequest(
            start_time=datetime.utcnow() + timedelta(random.randint(0, 1)),
            key=_key,
            measurements=[traceroute],
            sources=[source],
            is_oneoff=True
        )    
        (is_success, response) = atlas_request.create()
        if is_success:
            print('create_task', dstip, is_success, response)
            msm_id = response['measurements'][0]
            return

Could you kindly let me know if there might be an issue with my approach or provide any advice on how to improve this process? I would greatly appreciate any guidance.

Thank you very much!

Best regards,
Sun Letong


-----
To unsubscribe from this mailing list or change your subscription options, please visit: https://mailman.ripe.net/mailman3/lists/ripe-atlas.ripe.net/
As we have migrated to Mailman 3, you will need to create an account with the email matching your subscription before you can change your settings. 
More details at: https://www.ripe.net/membership/mail/mailman-3-migration/